[med-svn] [dicom3tools] 01/04: Imported Upstream version 1.00~20160516104835
Gert Wollny
gert-guest at moszumanska.debian.org
Fri May 20 07:57:53 UTC 2016
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 <gw.fossdev at gmail.com>
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
More information about the debian-med-commit
mailing list