This is an automated email from the git hooks/post-receive script. gert-guest pushed a commit to branch master in repository dicom3tools.
commit 8dc96eac030a8a357de4b05b34bfdaa5ae3fad37 Author: Gert Wollny <[email protected]> Date: Fri May 20 07:02:31 2016 +0000 Imported Upstream version 1.00~20160516104835 --- CHANGES | 18 ++++++++ VERSION | 2 +- appsrc/dcfile/dcunjls.script | 8 ++-- appsrc/dcfile/dcunjpeg.script | 6 +-- libsrc/include/dctool/attrmxls.h | 12 +++-- libsrc/src/dctool/attrmxls.cc | 2 +- libsrc/src/dctool/attrmxrd.cc | 25 ++++++++--- libsrc/src/dctool/attrmxvr.cc | 88 ++++++++++++++++++++++++++++++------- libsrc/src/generic/version.cc | 2 +- libsrc/src/locale/mesgtext.tpl | 1 + libsrc/standard/elmdict/elscint.tpl | 39 ++++++++++++++-- libsrc/standard/elmdict/gems.tpl | 11 ++++- libsrc/standard/elmdict/other.tpl | 37 ++++++++++++++++ libsrc/standard/elmdict/toshiba.tpl | 3 ++ 14 files changed, 215 insertions(+), 39 deletions(-) diff --git a/CHANGES b/CHANGES index 4f6fff7..752bb44 100755 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,21 @@ +160515: appsrc/dcfile/dcunjpeg.script,dcunjls.script: Improve handling when elements past pixel data, remove icon image sequence (000491) (000492)" + +160515: libsrc/standard/elmdict/gems.tpl: Add observed private Toshiba CT data element VRs + +160515: libsrc/standard/elmdict/toshiba.tpl: Add observed private Toshiba MR data element VRs + +160515: libsrc/standard/elmdict/other.tpl: Add observed private Esaote MR data element VRs + +160515: libsrc/standard/elmdict/elscint.tpl: Add observed private data element VRs + +160515: libsrc/include/dctool/attrmxls.h,src/dctool/attrmxls.cc,attrmxrd.cc,attrmxvr.cc,locale/mesgtext.tpl: Use Pixel Representation from outer data set to set VR of nested XS (US/SS) data elements both when reading and preparing for writing, and do not give up if PixelRepresentation absent or incorrect (000490) (000491) + +160506: libsrc/standard/elmdict/other.tpl: Add some VRs for more Brit Systems private elements encountered in instances + +160413: libsrc/standard/elmdict/gems.tpl: Add observed GE IDI private data element VRs + +160413: libsrc/standard/elmdict/gems.tpl: Add observed GE DBT private data element VR + 160323: libsrc/standard/elmdict/toshiba.tpl: Add Toshiba CT private data element for Injector Elapsed Time 160323: libsrc/standard/elmdict/other.tpl: Add observed Nautilus Medical private data element VRs diff --git a/VERSION b/VERSION index 2937cac..388d9cb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.00.snapshot.20160402132920 +1.00.snapshot.20160516104835 diff --git a/appsrc/dcfile/dcunjls.script b/appsrc/dcfile/dcunjls.script index 5ab97c4..7fa25d0 100755 --- a/appsrc/dcfile/dcunjls.script +++ b/appsrc/dcfile/dcunjls.script @@ -17,7 +17,7 @@ shift outfile="$1" shift -dccpoptions=" -nodisclaimer" +dccpoptions=" -nodisclaimer -ignorereaderrors -ignoreoutofordertags" transfersyntaxuid=`"$DCKEY" -k TransferSyntaxUID "$infile" 2>&1 | egrep -v 'Error|Warning'` @@ -28,10 +28,10 @@ bits=`"$DCKEY" -decimal -k BitsAllocated "$infile" 2>&1 | egrep -v 'Error|Warnin if [ $bits = 8 ] then # leave pixel data as OB - "$DCDUMP" "$infile" 2>&1 | grep '10) OX Pixel Data' | sed -e 's/$/ []/' | "$ANCREATE" -e > "$TMPROOT.pixelhead" + "$DCDUMP" "$infile" 2>&1 | grep '^[(]0x7fe0,0x0010[)] OX Pixel Data' | sed -e 's/$/ []/' | "$ANCREATE" -e > "$TMPROOT.pixelhead" else # make pixel data OW - "$DCDUMP" "$infile" 2>&1 | grep '10) OX Pixel Data' | sed -e 's/$/ []/' -e 's/VR=<OB>/VR=<OW>/' | "$ANCREATE" -e > "$TMPROOT.pixelhead" + "$DCDUMP" "$infile" 2>&1 | grep '^[(]0x7fe0,0x0010[)] OX Pixel Data' | sed -e 's/$/ []/' -e 's/VR=<OB>/VR=<OW>/' | "$ANCREATE" -e > "$TMPROOT.pixelhead" fi "$DCTORAW" -quiet "$infile" "$TMPROOT.jls" 2>/dev/null @@ -39,7 +39,7 @@ fi "$JLS" -d -output-endian little "$TMPROOT.jls" "$TMPROOT.raw.littleendian" rm "$TMPROOT.jls" -"$DCCP" "$infile" "$TMPROOT.nopixels" -d PixelData $dccpoptions 2>&1 | egrep -v 'Error|Warning' +"$DCCP" "$infile" "$TMPROOT.nopixels" -d PixelData -d IconImageSequence -d DataSetTrailingPadding -d DigitalSignaturesSequence -d '(0x7fe1,0x0010)' -d '(0x7fe1,0x1001)' -d '(0x7fe1,0x1002)' -d '(0x7fe1,0x1003)'$dccpoptions 2>&1 | egrep -v 'Error|Warning' cat "$TMPROOT.nopixels" "$TMPROOT.pixelhead" "$TMPROOT.raw.littleendian" > "$outfile" rm "$TMPROOT.nopixels" "$TMPROOT.pixelhead" "$TMPROOT.raw.littleendian" diff --git a/appsrc/dcfile/dcunjpeg.script b/appsrc/dcfile/dcunjpeg.script index a077e60..54b4388 100755 --- a/appsrc/dcfile/dcunjpeg.script +++ b/appsrc/dcfile/dcunjpeg.script @@ -60,10 +60,10 @@ fi if [ $bits = 8 ] then # leave pixel data as OB - "$DCDUMP" -ignoreoutofordertags "$1" 2>&1 | grep '^(0x7fe0,0x0010) OX Pixel Data' | sed -e 's/$/ []/' | "$ANCREATE" -e > "$TMPROOT.pixelhead" + "$DCDUMP" -ignoreoutofordertags "$1" 2>&1 | grep '^[(]0x7fe0,0x0010[)] OX Pixel Data' | sed -e 's/$/ []/' | "$ANCREATE" -e > "$TMPROOT.pixelhead" else # make pixel data OW - "$DCDUMP" -ignoreoutofordertags "$1" 2>&1 | grep '^(0x7fe0,0x0010) OX Pixel Data' | sed -e 's/$/ []/' -e 's/VR=<OB>/VR=<OW>/' | "$ANCREATE" -e > "$TMPROOT.pixelhead" + "$DCDUMP" -ignoreoutofordertags "$1" 2>&1 | grep '^[(]0x7fe0,0x0010[)] OX Pixel Data' | sed -e 's/$/ []/' -e 's/VR=<OB>/VR=<OW>/' | "$ANCREATE" -e > "$TMPROOT.pixelhead" fi "$DCTORAW" -quiet "$1" "$TMPROOT.jpg" 2>/dev/null @@ -136,7 +136,7 @@ fi if [ -f "$TMPROOT.rawl" ] then - "$DCCP" "$1" "$TMPROOT.nopixels" -d PixelData -d DataSetTrailingPadding -d DigitalSignaturesSequence $dccpoptions + "$DCCP" "$1" "$TMPROOT.nopixels" -d PixelData -d IconImageSequence -d DataSetTrailingPadding -d DigitalSignaturesSequence -d '(0x7fe1,0x0010)' -d '(0x7fe1,0x1001)' -d '(0x7fe1,0x1002)' -d '(0x7fe1,0x1003)' $dccpoptions cat "$TMPROOT.nopixels" "$TMPROOT.pixelhead" "$TMPROOT.rawl" > "$2" rm "$TMPROOT.nopixels" "$TMPROOT.pixelhead" "$TMPROOT.rawl" exit 0 diff --git a/libsrc/include/dctool/attrmxls.h b/libsrc/include/dctool/attrmxls.h index 63467ee..c174e6a 100644 --- a/libsrc/include/dctool/attrmxls.h +++ b/libsrc/include/dctool/attrmxls.h @@ -23,12 +23,14 @@ private: const char * getValueRepresentation(Tag tag,char *vre,bool& readAsImplicitRegardless); Uint32 getValueLength(const char *vr,bool readAsImplicitRegardless); void skipEncapsulatedData(void); - SequenceAttribute * readNewSequenceAttribute(Tag tag,Uint32 length,bool ignoreoutofordertags,bool useUSVRForLUTDataIfNotExplicit,bool undefinedLengthUNTreatedAsSequence,const char *sequenceOwner,bool fixBitsDuringRead); + SequenceAttribute * readNewSequenceAttribute(Tag tag,Uint32 length,bool ignoreoutofordertags,bool useUSVRForLUTDataIfNotExplicit,bool undefinedLengthUNTreatedAsSequence,const char *sequenceOwner,bool fixBitsDuringRead,bool havePixelRepresentation,Uint16 vPixelRepresentation); bool replaceWithPixelRepresentation( const Tag &t,const char *name, - bool havepixrep,bool usesigned); + bool havePixelRepresentation,bool usesigned); protected: - bool setValueRepresentation(void); + bool setValueRepresentationForThisList(bool havePixelRepresentation,Uint16 vPixelRepresentation); + bool setValueRepresentationForThisListAndNestedSequences(bool havePixelRepresentation,Uint16 vPixelRepresentation); + bool setValueRepresentationForThisListAndNestedSequences(); public: ReadableAttributeList(void); virtual ~ReadableAttributeList(); @@ -47,7 +49,9 @@ public: Tag stopAtTag=Tag(0,0), bool nestedWithinSequence=false, const char *sequenceOwner=NULL, - bool fixBitsDuringRead=true + bool fixBitsDuringRead=true, + bool havePixelRepresentation=false, + Uint16 vPixelRepresentation=0 ); Uint32 getByteOffset(void) const { return byteoffset; } diff --git a/libsrc/src/dctool/attrmxls.cc b/libsrc/src/dctool/attrmxls.cc index 8e71ab6..a37e3d7 100644 --- a/libsrc/src/dctool/attrmxls.cc +++ b/libsrc/src/dctool/attrmxls.cc @@ -1133,7 +1133,7 @@ ManagedAttributeList::prepare(DicomOutputStream& stream, (!(flags&adddicom) || addDicom(flags&disambiguateseriesbydescription ? true : false)) && (!(flags&adddisclaimer) || addDisclaimer()) && setOutputEncoding(stream.getTransferSyntaxToWriteDataSet()) - && setValueRepresentation() + && setValueRepresentationForThisListAndNestedSequences() && (!(flags&metaheader) || addMetaHeader(stream.getTransferSyntaxToWriteDataSet(),stamp)); } diff --git a/libsrc/src/dctool/attrmxrd.cc b/libsrc/src/dctool/attrmxrd.cc index a319a50..90ba695 100644 --- a/libsrc/src/dctool/attrmxrd.cc +++ b/libsrc/src/dctool/attrmxrd.cc @@ -330,7 +330,7 @@ ReadableAttributeList::skipEncapsulatedData(void) } SequenceAttribute * -ReadableAttributeList::readNewSequenceAttribute(Tag stag,Uint32 length,bool ignoreoutofordertags,bool useUSVRForLUTDataIfNotExplicit,bool undefinedLengthUNTreatedAsSequence,const char *sequenceOwner,bool fixBitsDuringRead) +ReadableAttributeList::readNewSequenceAttribute(Tag stag,Uint32 length,bool ignoreoutofordertags,bool useUSVRForLUTDataIfNotExplicit,bool undefinedLengthUNTreatedAsSequence,const char *sequenceOwner,bool fixBitsDuringRead,bool havePixelRepresentation,Uint16 vPixelRepresentation) { //cerr << "readNewSequenceAttribute(): start: undefinedLengthUNTreatedAsSequence = " << (undefinedLengthUNTreatedAsSequence ? "T" : "F") << endl; //cerr << "readNewSequenceAttribute(): start: length = " << dec << length << endl; @@ -393,7 +393,7 @@ ReadableAttributeList::readNewSequenceAttribute(Tag stag,Uint32 length,bool igno Assert(item); ElementDictionary *newdict=new ElementDictionary(); Assert(newdict); - bool result=item->read(*stream,newdict,log,verbose,vl,false/*metaheadercheck*/,false/*uselengthtoend*/,ignoreoutofordertags,useUSVRForLUTDataIfNotExplicit,undefinedLengthUNTreatedAsSequence/*forceImplicit*/,false/*useStopAtTag*/,Tag(0,0)/*stopAtTag*/,true/*nestedWithinSequence*/,sequenceOwner,fixBitsDuringRead); + bool result=item->read(*stream,newdict,log,verbose,vl,false/*metaheadercheck*/,false/*uselengthtoend*/,ignoreoutofordertags,useUSVRForLUTDataIfNotExplicit,undefinedLengthUNTreatedAsSequence/*forceImplicit*/,false/*useStopAtTag*/,Tag(0,0)/*stopAtTag*/,true/*nestedWithinSequence*/,sequenceOwner,fixBitsDuringRead,havePixelRepresentation,vPixelRepresentation); const char *e=item->errors(); if (e) errorstream << e; // may be warnings if (!result) { @@ -478,7 +478,7 @@ cerr << "ReadableAttributeList::~ReadableAttributeList" << endl; bool ReadableAttributeList::read(DicomInputStream& str,ElementDictionary* dict,TextOutputStream* l,bool v,Uint32 length, - bool metaheadercheck,bool uselengthtoend,bool ignoreoutofordertags,bool useUSVRForLUTDataIfNotExplicit,bool forceImplicit,bool useStopAtTag,Tag stopAtTag,bool nestedWithinSequence,const char *sequenceOwner,bool fixBitsDuringRead) + bool metaheadercheck,bool uselengthtoend,bool ignoreoutofordertags,bool useUSVRForLUTDataIfNotExplicit,bool forceImplicit,bool useStopAtTag,Tag stopAtTag,bool nestedWithinSequence,const char *sequenceOwner,bool fixBitsDuringRead,bool havePixelRepresentation,Uint16 vPixelRepresentation) { //cerr << "ReadableAttributeList::read - start: forceImplicit = " << (forceImplicit ? "T" : "F") << endl; //cerr << "ReadableAttributeList::read nestedWithinSequence = " << (nestedWithinSequence ? "T" : "F") << endl; @@ -780,7 +780,8 @@ cerr << ")" a=readNewSequenceAttribute(tag,vl,ignoreoutofordertags,useUSVRForLUTDataIfNotExplicit, forceImplicit || treatedUnknownVRAsSequence, /* once inside UN SQ, always implicit, even if nested */ useSequenceOwner, /* in case nested lists are missing owner, propagate owner of the sequence tag itself, if private, or its parent, if missing its own owner */ - fixBitsDuringRead + fixBitsDuringRead, + havePixelRepresentation,vPixelRepresentation ); //cerr << "ReadableAttributeList::read - back from readNewSequenceAttribute() with a = " << (a == NULL ? "null" : "valid") << endl; //cerr << "ReadableAttributeList::read - back from readNewSequenceAttribute() with stream->fail() = " << stream->fail() << endl; @@ -1116,6 +1117,20 @@ cerr << ")" stream->setTransferSyntaxToReadDataSet(NULL); } } + else if (tag == TagFromName(PixelRepresentation)) { + // needed to determine VR of XS data elements in implicit VR in data set at this or nested levels (000490) (000491) + Uint16 value; + Uint32 length; + if (!a->getValue(0,value) + || a->getVM() != 1) { + errorstream << EMsgDC(BadPixelRepresentation) << endl; + } + else { + havePixelRepresentation = true; + vPixelRepresentation = value; +//cerr << "ReadableAttributeList::read() encountered PixelRepresentation - set havePixelRepresentation = " << (havePixelRepresentation ? "true" : "false") << " vPixelRepresentation = " << vPixelRepresentation << endl; + } + } else if (tag == TagFromName(FileMetaInformationVersion)) { // check this is correct here ... easier than elsewhere // and this is the only place an OB is used like this @@ -1211,7 +1226,7 @@ cerr << ")" //cerr << "ReadableAttributeList::read - falling out at end startbyteoffset+length = " << hex << (length == 0xffffffff ? 0xffffffff : (startbyteoffset+length)) << dec << endl; //cerr << "ReadableAttributeList::read - falling out at end stream->fail() = " << stream->fail() << endl; TransferSyntax *dts=stream->getTransferSyntaxToReadDataSet(); - return ((dts && dts->isExplicitVR()) || setValueRepresentation()) + return ((dts && dts->isExplicitVR()) || setValueRepresentationForThisList(havePixelRepresentation,vPixelRepresentation)) /*&& !stream->fail()*/; // seems to fail inappropriately on AMD 64 Linux with Siemens PDI 2004 demo DICOMDIR :( } diff --git a/libsrc/src/dctool/attrmxvr.cc b/libsrc/src/dctool/attrmxvr.cc index 329ca96..5adbd45 100644 --- a/libsrc/src/dctool/attrmxvr.cc +++ b/libsrc/src/dctool/attrmxvr.cc @@ -60,12 +60,12 @@ static const char *CopyrightIdentifier(void) { return "@(#)attrmxvr.cc Copyright // ? should we not change if OW for XO to avoid VM problems ? bool -ReadableAttributeList::replaceWithPixelRepresentation(const Tag &t,const char *name,bool havepixrep,bool usesigned) +ReadableAttributeList::replaceWithPixelRepresentation(const Tag &t,const char *name,bool havePixelRepresentation,bool usesigned) { bool success=true; Attribute *a=operator[](t); if (a) { - if (havepixrep) { + if (havePixelRepresentation) { Attribute *newa; if (usesigned) newa=new SignedShortAttribute(t); @@ -95,24 +95,32 @@ ReadableAttributeList::replaceWithPixelRepresentation(const Tag &t,const char *n } #define ReplaceWithPixelRepresentation(n) \ - replaceWithPixelRepresentation(TagFromName(n),#n,aPixelRepresentation!=0,vPixelRepresentation==1) + replaceWithPixelRepresentation(TagFromName(n),#n,havePixelRepresentation,vPixelRepresentation==1) bool -ReadableAttributeList::setValueRepresentation(void) +ReadableAttributeList::setValueRepresentationForThisList(bool havePixelRepresentation,Uint16 vPixelRepresentation) { +//cerr << "ReadableAttributeList::setValueRepresentationForThisList - havePixelRepresentation = " << (havePixelRepresentation ? "true" : "false") << " vPixelRepresentation = " << vPixelRepresentation << endl; bool success=true; - - Attribute *aPixelRepresentation = operator[](TagFromName(PixelRepresentation)); - Uint16 vPixelRepresentation; - - if (aPixelRepresentation) { - vPixelRepresentation=AttributeValue(aPixelRepresentation); - if (vPixelRepresentation != 0 && vPixelRepresentation != 1) { - errorstream << EMsgDC(BadValuePixelRepresentation) << endl; - good_flag=0; - success=false; - vPixelRepresentation=0; - } + + // caller is responsible for setting vPixelRepresentation during reading, whether it be + // in the current level data set or inherited from a sequence parent, since + // attributes like RWV-related nested in sequence items may need pixel representation + // from the root data set (000490)(000491) + + // for this to work with attributes in nested sequences, the sequence needs to occur + // after the PixelRepresentation attribute ... all known affected sequences (i.e., + // HistogramSequence, Referenced Image Real World Value Mapping Sequence, + // Real World Value Mapping Sequence, Data Frame Assignment Sequence, + // Enhanced Palette Color Lookup Table Sequence, Optical Path Sequence + // Modality LUT Sequence, VOI LUT Sequence, Presentation State Classification Component Sequence + // fit that pattern + + if (havePixelRepresentation && vPixelRepresentation != 0 && vPixelRepresentation != 1) { + errorstream << EMsgDC(BadValuePixelRepresentation) << endl; + good_flag=0; + //success=false; // do not freak out if we get a valid value for PixelRepresentation; not the end of the world if we assume US (000490) + vPixelRepresentation=0; // assume unsigned if not recognized } success=success && ReplaceWithPixelRepresentation(PerimeterValue); @@ -143,6 +151,54 @@ ReadableAttributeList::setValueRepresentation(void) return success; } +bool +ReadableAttributeList::setValueRepresentationForThisListAndNestedSequences(bool havePixelRepresentation,Uint16 vPixelRepresentation) +{ +//cerr << "ReadableAttributeList::setValueRepresentationForThisListAndNestedSequences(bool,Unint16)" << endl; + + bool success = setValueRepresentationForThisList(havePixelRepresentation,vPixelRepresentation); + + // the following is based on ::loopOverListsInSequences() ... + AttributeListIterator listi(*this); + while (!listi) { + Attribute *a=listi(); + Assert(a); + if (strcmp(a->getVR(),"SQ") == 0) { + AttributeList **al; + int n; + if ((n=a->getLists(&al)) > 0) { + int i; + for (i=0; i<n; ++i) { + ReadableAttributeList *itemList = (ReadableAttributeList *)(al[i]); // blech ... dangerous downcast, but should be OK because only ever called from ReadableAttributeList::setValueRepresentationForThisListAndNestedSequences() :( + success=success && itemList->setValueRepresentationForThisListAndNestedSequences(havePixelRepresentation,vPixelRepresentation); + } + delete [] al; + } + } + ++listi; + } + + return success; +} + +bool +ReadableAttributeList::setValueRepresentationForThisListAndNestedSequences() +{ +//cerr << "ReadableAttributeList::setValueRepresentationForThisListAndNestedSequences()" << endl; + bool havePixelRepresentation = false; + + Attribute *aPixelRepresentation = operator[](TagFromName(PixelRepresentation)); + Uint16 vPixelRepresentation = 0; // should not matter what we set this to if havePixelRepresentation equals false, but make it unsigned just in case + if (aPixelRepresentation) { + vPixelRepresentation=AttributeValue(aPixelRepresentation); + havePixelRepresentation = true; + } + + bool success = setValueRepresentationForThisListAndNestedSequences(havePixelRepresentation,vPixelRepresentation); + + return success; +} + // Handle elsewhere or not at all yet :( ... // If AudioSampleFormat = 0 (16 bit signed LSB 1st interleaved per channel) diff --git a/libsrc/src/generic/version.cc b/libsrc/src/generic/version.cc index 1fcb397..262a001 100644 --- a/libsrc/src/generic/version.cc +++ b/libsrc/src/generic/version.cc @@ -4,4 +4,4 @@ #include "version.h" -const char* dicom3tools_version_string = "1.00.snapshot.20160402132920"; +const char* dicom3tools_version_string = "1.00.snapshot.20160516104835"; diff --git a/libsrc/src/locale/mesgtext.tpl b/libsrc/src/locale/mesgtext.tpl index 86b011b..7f133f5 100755 --- a/libsrc/src/locale/mesgtext.tpl +++ b/libsrc/src/locale/mesgtext.tpl @@ -24,6 +24,7 @@ Index="BadGroupLength" English="Bad group length" Index="BadImplicitBig" English="Implicit value representation big-endian transfer syntax is invalid" Index="BadItemInItem" English="Item tag was found prematurely within another Item" Index="BadPatches" English="Some patches are bad, so won't do any" +Index="BadPixelRepresentation" English="Bad Pixel Representation - not a US with a single value" Index="BadPrivateOwner" English="Bad private owner value" Index="BadTagInSequence" English="Bad tag in sequence" Index="BadTimeValue" English="Bad time value" diff --git a/libsrc/standard/elmdict/elscint.tpl b/libsrc/standard/elmdict/elscint.tpl index 6859ef3..442b1b6 100755 --- a/libsrc/standard/elmdict/elscint.tpl +++ b/libsrc/standard/elmdict/elscint.tpl @@ -166,22 +166,34 @@ (07A1,003D) VERS="EL1" VR="US" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A1,0040) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A1,0043) VERS="EL1" VR="IS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,0045) VERS="EL1" VR="LT" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A1,0047) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" -(07A1,0050) VERS="EL1" VR="US" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,004A) VERS="EL1" VR="SH" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,0050) VERS="EL1" VR="US" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A1,0056) VERS="EL1" VR="US" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,0058) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,005D) VERS="EL1" VR="DT" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,005F) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A1,0070) VERS="EL1" VR="SH" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A1,0071) VERS="EL1" VR="SH" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A1,0075) VERS="EL1" VR="LO" VM="2" Owner="ELSCINT1" Keyword="?" Name="?" -(07A1,0085) VERS="EL1" VR="UL" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,0076) VERS="EL1" VR="ST" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,0085) VERS="EL1" VR="UL" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A1,0087) VERS="EL1" VR="LT" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A1,0088) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,008C) VERS="EL1" VR="ST" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,0094) VERS="EL1" VR="ST" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,0096) VERS="EL1" VR="DA" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,0097) VERS="EL1" VR="SH" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A1,0098) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A1,009F) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A1,00D0) VERS="EL1" VR="LO" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,0001) VERS="EL1" VR="LO" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,0003) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,0005) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,0006) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,0009) VERS="EL1" VR="IS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,0013) VERS="EL1" VR="SH" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,0014) VERS="EL1" VR="ST" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,0015) VERS="EL1" VR="ST" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" @@ -200,14 +212,35 @@ (07A3,0065) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,0066) VERS="EL1" VR="IS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,0080) VERS="EL1" VR="SQ" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,0092) VERS="EL1" VR="DS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,0093) VERS="EL1" VR="DS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,0099) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,009C) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,009F) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,00B9) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A3,00BB) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00C0) VERS="EL1" VR="SQ" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00C1) VERS="EL1" VR="LO" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00C2) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00C3) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00C4) VERS="EL1" VR="LO" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00C5) VERS="EL1" VR="LO" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00C8) VERS="EL1" VR="AE" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00C9) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00CB) VERS="EL1" VR="SQ" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00CC) VERS="EL1" VR="LO" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00E3) VERS="EL1" VR="LO" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00F2) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00F5) VERS="EL1" VR="LO" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00FA) VERS="EL1" VR="DT" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A3,00FB) VERS="EL1" VR="DT" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (07A5,0000) VERS="EL1" VR="LO" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" -(07A5,0056) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A5,0054) VERS="EL1" VR="DT" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A5,0056) VERS="EL1" VR="CS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A5,0059) VERS="EL1" VR="IS" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A5,0062) VERS="EL1" VR="LO" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" +(07A5,0069) VERS="EL1" VR="LO" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (5001,0070) VERS="EL1" VR="SQ" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" (5001,0071) VERS="EL1" VR="SH" VM="1" Owner="ELSCINT1" Keyword="?" Name="?" diff --git a/libsrc/standard/elmdict/gems.tpl b/libsrc/standard/elmdict/gems.tpl index 157a431..2e74c8e 100755 --- a/libsrc/standard/elmdict/gems.tpl +++ b/libsrc/standard/elmdict/gems.tpl @@ -1464,6 +1464,7 @@ (0045,00A6) VERS="GEM" VR="UI" VM="1" Owner="GEMS_SENO_02" Keyword="SOPInstanceUIDForLossyCompression" Name="SOP Instance UID for Lossy Compression" (0045,00A7) VERS="GEM" VR="LT" VM="1" Owner="GEMS_SENO_02" Keyword="ReconstructionParameters" Name="Reconstruction Parameters" (0045,00A8) VERS="GEM" VR="DS" VM="1" Owner="GEMS_SENO_02" Keyword="EntranceDoseIndGyForCompleteDBTSequence" Name="Entrance Dose in dGy for Complete DBT Sequence" +(0045,00AD) VERS="GEM" VR="LO" VM="1-n" Owner="GEMS_SENO_02" Keyword="?" Name="?" (0045,0001) VERS="GEM" VR="SS" VM="1" Owner="GEMS_HELIOS_01" Keyword="NumberOfMacroRowsInDetector" Name="Number of Macro Rows in Detector" (0045,0002) VERS="GEM" VR="FL" VM="1" Owner="GEMS_HELIOS_01" Keyword="MacroWidthAtISOCenter" Name="Macro width at ISO Center" (0045,0003) VERS="GEM" VR="SS" VM="1" Owner="GEMS_HELIOS_01" Keyword="DASType" Name="DAS type" @@ -2030,6 +2031,10 @@ (0053,0060) VERS="GEM" VR="SH" VM="1" Owner="GEHC_CT_ADVAPP_001" Keyword="ReconFlipRotateAnno" Name="Recon Flip RotateA nno" (0053,0061) VERS="GEM" VR="SH" VM="1" Owner="GEHC_CT_ADVAPP_001" Keyword="HighResolutionFlag" Name="High Resolution Flag" (0053,0062) VERS="GEM" VR="SH" VM="1" Owner="GEHC_CT_ADVAPP_001" Keyword="RespiratoryFlag" Name="Respiratory Flag" +(0053,0064) VERS="GEM" VR="IS" VM="1" Owner="GEHC_CT_ADVAPP_001" Keyword="?" Name="?" +(0053,0065) VERS="GEM" VR="IS" VM="1" Owner="GEHC_CT_ADVAPP_001" Keyword="?" Name="?" +(0053,0066) VERS="GEM" VR="LO" VM="1" Owner="GEHC_CT_ADVAPP_001" Keyword="?" Name="?" +(0053,0067) VERS="GEM" VR="IS" VM="1" Owner="GEHC_CT_ADVAPP_001" Keyword="?" Name="?" (0053,009D) VERS="GEM" VR="LO" VM="1" Owner="GEHC_CT_ADVAPP_001" Keyword="?" Name="?" (6005,0010) VERS="GEM" VR="UT" VM="1" Owner="GE_GROUP" Keyword="?" Name="?" @@ -2164,4 +2169,8 @@ (0051,000c) VERS="GEM" VR="SL" VM="1" Owner="GEMS_FUNCTOOL_01" Keyword="WizardStateDataSize" Name="Wizard State Data Size" # in MRI, this has been used as VR LO Analysis Package :( (0051,000d) VERS="GEM" VR="OB" VM="1" Owner="GEMS_FUNCTOOL_01" Keyword="WizardState" Name="Wizard State" - +(0073,0020) VERS="GEM" VR="DS" VM="1" Owner="GEMS_IDI_01" Keyword="?" Name="?" +(0073,0021) VERS="GEM" VR="DS" VM="1" Owner="GEMS_IDI_01" Keyword="?" Name="?" +(0073,0030) VERS="GEM" VR="OW" VM="1" Owner="GEMS_IDI_01" Keyword="Height Map" Name="Height Map" +(0073,0040) VERS="GEM" VR="DS" VM="1" Owner="GEMS_IDI_01" Keyword="?" Name="?" +(0073,0050) VERS="GEM" VR="DS" VM="1-n" Owner="GEMS_IDI_01" Keyword="?" Name="?" diff --git a/libsrc/standard/elmdict/other.tpl b/libsrc/standard/elmdict/other.tpl index 9314a10..2adaa9e 100755 --- a/libsrc/standard/elmdict/other.tpl +++ b/libsrc/standard/elmdict/other.tpl @@ -730,6 +730,9 @@ (0011,0002) VERS="" VR="DS" VM="1" Owner="V1" Keyword="NormalizationCoefficient" Name="Normalization Coefficient" (0011,0003) VERS="" VR="DS" VM="1-n" Owner="V1" Keyword="ReceivingGain" Name="Receiving Gain" (0011,0004) VERS="" VR="DS" VM="1" Owner="V1" Keyword="MeanImageNoise" Name="Mean Image Noise" +(0011,0005) VERS="" VR="LT" VM="1" Owner="V1" Keyword="?" Name="?" +(0011,0006) VERS="" VR="LT" VM="1" Owner="V1" Keyword="?" Name="?" +(0011,0007) VERS="" VR="LT" VM="1" Owner="V1" Keyword="?" Name="?" (1135,0000) VERS="" VR="UI" VM="1" Owner="Voxar 2.16.124.113543.6003.1999.12.20.12.5.0" Keyword="?" Name="?" (1135,0001) VERS="" VR="OB" VM="1" Owner="Voxar 2.16.124.113543.6003.1999.12.20.12.5.0" Keyword="?" Name="?" @@ -810,6 +813,14 @@ (0021,00a6) VERS="" VR="SH" VM="1" Owner="BRIT Systems, Inc." Keyword="LocalIPAddress" Name="Local IP Address" (0021,00a7) VERS="" VR="AE" VM="1" Owner="BRIT Systems, Inc." Keyword="RemoteAETitle" Name="Remote AE Title" (0021,00a8) VERS="" VR="SH" VM="1" Owner="BRIT Systems, Inc." Keyword="RemoteIPAddress" Name="Remote IP Address" +(0021,00b0) VERS="" VR="ST" VM="1" Owner="BRIT Systems, Inc." Keyword="?" Name="?" +(0021,00b1) VERS="" VR="ST" VM="1" Owner="BRIT Systems, Inc." Keyword="?" Name="?" +(0021,00b2) VERS="" VR="ST" VM="1" Owner="BRIT Systems, Inc." Keyword="?" Name="?" +(0021,00b3) VERS="" VR="ST" VM="1" Owner="BRIT Systems, Inc." Keyword="?" Name="?" +(0021,00b4) VERS="" VR="ST" VM="1" Owner="BRIT Systems, Inc." Keyword="?" Name="?" +(0021,00b5) VERS="" VR="ST" VM="1" Owner="BRIT Systems, Inc." Keyword="?" Name="?" +(0021,00b6) VERS="" VR="ST" VM="1" Owner="BRIT Systems, Inc." Keyword="?" Name="?" +(0021,00b7) VERS="" VR="ST" VM="1" Owner="BRIT Systems, Inc." Keyword="?" Name="?" (3005,0000) VERS="" VR="SQ" VM="1" Owner="MDS NORDION OTP ANATOMY MODELLING" Keyword="?" Name="?" (3005,0002) VERS="" VR="CS" VM="1" Owner="MDS NORDION OTP ANATOMY MODELLING" Keyword="?" Name="?" @@ -2112,4 +2123,30 @@ (0857,0000) VERS="NAUT" VR="LO" VM="1" Owner="Nautilus Medical" Keyword="?" Name="?" (0857,0001) VERS="NAUT" VR="LO" VM="1" Owner="Nautilus Medical" Keyword="?" Name="?" (0857,0002) VERS="NAUT" VR="LO" VM="1" Owner="Nautilus Medical" Keyword="?" Name="?" +(0857,0003) VERS="NAUT" VR="LO" VM="1" Owner="Nautilus Medical" Keyword="?" Name="?" + +(0023,0001) VERS="AMI" VR="UI" VM="1" Owner="AMICAS0" Keyword="?" Name="?" +(0023,0008) VERS="AMI" VR="US" VM="1" Owner="AMICAS0" Keyword="?" Name="?" +(0023,0010) VERS="AMI" VR="US" VM="1" Owner="AMICAS0" Keyword="?" Name="?" +(0023,0016) VERS="AMI" VR="SL" VM="1" Owner="AMICAS0" Keyword="?" Name="?" +(0023,0043) VERS="AMI" VR="US" VM="1" Owner="AMICAS0" Keyword="?" Name="?" +(0023,0045) VERS="AMI" VR="US" VM="1" Owner="AMICAS0" Keyword="?" Name="?" +(0023,0054) VERS="AMI" VR="ST" VM="1" Owner="AMICAS0" Keyword="?" Name="?" + +(5AB3,0000) VERS="DVM" VR="LO" VM="1" Owner="DVMInsight Receiver Tracking" Keyword="?" Name="?" +(5AB3,0002) VERS="DVM" VR="LO" VM="1" Owner="DVMInsight Receiver Tracking" Keyword="?" Name="?" +(5AB3,0004) VERS="DVM" VR="LO" VM="1" Owner="DVMInsight Receiver Tracking" Keyword="?" Name="?" +(5AB3,0006) VERS="DVM" VR="LO" VM="1" Owner="DVMInsight Receiver Tracking" Keyword="?" Name="?" +(5AB3,0008) VERS="DVM" VR="LO" VM="1" Owner="DVMInsight Receiver Tracking" Keyword="?" Name="?" +(5AB3,0010) VERS="DVM" VR="LO" VM="1" Owner="DVMInsight Receiver Tracking" Keyword="?" Name="?" +(5AB3,0012) VERS="DVM" VR="LO" VM="1" Owner="DVMInsight Receiver Tracking" Keyword="?" Name="?" +(5AB3,0014) VERS="DVM" VR="LO" VM="1" Owner="DVMInsight Receiver Tracking" Keyword="?" Name="?" +(5AB3,0016) VERS="DVM" VR="LO" VM="1" Owner="DVMInsight Receiver Tracking" Keyword="?" Name="?" + +(7501,0001) VERS="COA" VR="LO" VM="1" Owner="CoActiv_PvtTags" Keyword="?" Name="?" +(7501,0002) VERS="COA" VR="LO" VM="1" Owner="CoActiv_PvtTags" Keyword="?" Name="?" +(7501,0003) VERS="COA" VR="UI" VM="1" Owner="CoActiv_PvtTags" Keyword="?" Name="?" +(7501,0004) VERS="COA" VR="LO" VM="1" Owner="CoActiv_PvtTags" Keyword="?" Name="?" + +(0029,0004) VERS="TLM" VR="US" VM="1" Owner="TELEMIS" Keyword="?" Name="?" diff --git a/libsrc/standard/elmdict/toshiba.tpl b/libsrc/standard/elmdict/toshiba.tpl index 99f7537..a790379 100755 --- a/libsrc/standard/elmdict/toshiba.tpl +++ b/libsrc/standard/elmdict/toshiba.tpl @@ -130,6 +130,9 @@ (700d,0007) VERS="TSH" VR="OB" VM="1" Owner="TOSHIBA_MEC_MR3" Keyword="ImageInformation" Name="Image Information" (700d,0008) VERS="TSH" VR="OB" VM="1" Owner="TOSHIBA_MEC_MR3" Keyword="OriginalData" Name="Original Data" (700d,0009) VERS="TSH" VR="SS" VM="1" Owner="TOSHIBA_MEC_MR3" Keyword="OriginalDataFlag" Name="Original Data Flag" +(700d,000C) VERS="TSH" VR="CS" VM="1" Owner="TOSHIBA_MEC_MR3" Keyword="?" Name="?" +(700d,0020) VERS="TSH" VR="SH" VM="1" Owner="TOSHIBA_MEC_MR3" Keyword="?" Name="?" + (7015,0000) VERS="TSH" VR="OB" VM="1" Owner="TOSHIBA ENCRYPTED SR DATA" Keyword="?" Name="?" (7015,0010) VERS="TSH" VR="OB" VM="1" Owner="TOSHIBA_SR" Keyword="?" Name="?" (7015,0060) VERS="TSH" VR="OB" VM="1" Owner="TOSHIBA_SR" Keyword="?" Name="?" -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/dicom3tools.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
