[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