New Upstream Release - dicom3tools

Ready changes

Summary

Merged new upstream version: 1.00~20230225185712 (was: 1.00~20220618093127).

Resulting package

Built on 2023-05-30T02:07 (took 24m42s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases dicom3tools-dbgsymapt install -t fresh-releases dicom3tools

Lintian Result

Diff

diff --git a/CHANGES b/CHANGES
index 2be1d33..d3a7e27 100755
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,35 @@
+230224:	libsrc/src/dctool/dcopto.cc, libsrc/src/dctool/elmdict.cc: Do not insert trailing null rather than space for private owners and private data elements with string VRs in copy/create/convert tools replace command line arguments (000582)
+
+230121:	libsrc/standard/elmdict/dicom3.tpl: Retire the Robotic Base Location Indicator (CP 2245)
+
+230119:	libsrc/standard/module/softcopy.tpl: Add ability to select optical path and use VOI and Palette Color in Advanced Blending Presentation State (CP 2036, CP 2037)
+
+221230:	libsrc/standard/strval/ct.tpl: Extend list of Defined Terms for Rescale Type for classic CT Image to match current standard (Sup 158), and make error when not HU for non-LOCALIZER a warning (is enhanced requirement only and not mentioned in standard for classic)
+
+221225:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for Enhanced RT Image (Sup 213)
+
+221224:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for Support of new MLC types (CP 2229)
+
+221123:	libsrc/standard/elmdict/dicom3.tpl: Correct Inventory Level,List of UID Matching Sequence keywords
+
+221013:	libsrc/src/dctool/attrtypv.cc,v,locale/mesgtext.tpl: Check timezone in DT is correct length and form (000580) and  value content in DA, DT, TM even if incorrect length (000581)
+
+221002:	libsrc/standard/elmdict/dicom3.tpl,module/base.tpl: Add Clinical Trial Time Point Type Code Sequence to Study Module (CP 2197)
+
+220929:	libsrc/standard/elmdict/other.tpl: Add more UCSF BIRP private data elements from ACRIN 6698 ISPY2 Shared Private Tag Data Dictionary_20210520.xlsx (000579)
+
+220923:	libsrc/standard/elmdict/dicom3.tpl: Correct data element tag for Maximum Number of Records that collides with Updated Metadata Sequence (Sup 223 FT3)
+
+220016:	libsrc/standard/elmdict/other.tpl: Add UCSF BIRP private creator that have different case for XX than specified (000578)
+
+220707:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for Conceptual Volume in Structure Set (CP 2184)
+
+220707:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for used ROI in Registration (CP 2183)
+
+220630:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for waveform filter description (CP 2162)
+
+220624:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for inventory supplement (Sup 223)
+
 220612:	appsrc/dcfile/dccidump.cc: Add utility to dump Content Item Macro content not related to SR (000576)
 
 220606:	libsrc/standard/strval/base.tpl: Add RRID coding scheme (CP 2164)
diff --git a/VERSION b/VERSION
index 6dcb2d1..49bc20b 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.00.snapshot.20220618093127
+1.00.snapshot.20230225185712
diff --git a/appsrc/misc/bmpdump.man b/appsrc/misc/bmpdump.man
deleted file mode 100644
index e69de29..0000000
diff --git a/appsrc/misc/jpegdump.man b/appsrc/misc/jpegdump.man
deleted file mode 100755
index e69de29..0000000
diff --git a/debian/changelog b/debian/changelog
index ad681e3..d08dcc7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,13 @@
-dicom3tools (1.00~20220618093127-3) UNRELEASED; urgency=medium
+dicom3tools (1.00~20230225185712-1) UNRELEASED; urgency=medium
 
+  [ Mohammed Bilal ]
   * Add hardening buildflags
   * skip line that causes blhc failure
 
- -- Mohammed Bilal <mdbilal@disroot.org>  Mon, 04 Jul 2022 07:29:06 +0000
+  [ Debian Janitor ]
+  * New upstream release.
+
+ -- Mohammed Bilal <mdbilal@disroot.org>  Tue, 30 May 2023 01:43:46 -0000
 
 dicom3tools (1.00~20220618093127-2) unstable; urgency=medium
 
diff --git a/debian/patches/bmpdump.man.patch b/debian/patches/bmpdump.man.patch
index ff445b4..1dca735 100644
--- a/debian/patches/bmpdump.man.patch
+++ b/debian/patches/bmpdump.man.patch
@@ -3,8 +3,10 @@ Author: Mathieu Malaterre <malat@debian.org>
 Forwarded: not-needed
 Last-Update: 2012-03-05
 
+Index: dicom3tools.git/appsrc/misc/bmpdump.man
+===================================================================
 --- /dev/null
-+++ b/appsrc/misc/bmpdump.man
++++ dicom3tools.git/appsrc/misc/bmpdump.man
 @@ -0,0 +1,14 @@
 +.TH bmpdump: "1" "May 2010" "bmpdump" "User Commands"
 +.SH NAME
diff --git a/debian/patches/codeblockstylefix.patch b/debian/patches/codeblockstylefix.patch
index 15ea6b3..57ac4db 100644
--- a/debian/patches/codeblockstylefix.patch
+++ b/debian/patches/codeblockstylefix.patch
@@ -1,9 +1,11 @@
 Description: Invalid Code-block style for the SPcod and SPcoc parameters
 Bug-Debian: https://bugs.debian.org/668629
 Author: Mathieu Malaterre <malat@debian.org>
---- a/appsrc/misc/jpegdump.cc
-+++ b/appsrc/misc/jpegdump.cc
-@@ -820,12 +820,12 @@ public:
+Index: dicom3tools.git/appsrc/misc/jpegdump.cc
+===================================================================
+--- dicom3tools.git.orig/appsrc/misc/jpegdump.cc
++++ dicom3tools.git/appsrc/misc/jpegdump.cc
+@@ -927,12 +927,12 @@ public:
  			
  			CodeBlockStyle				= buffer[8];
  			// Table A.19 - Code-block style for the SPcod and SPcoc parameters 
diff --git a/debian/patches/jpegdump.man.patch b/debian/patches/jpegdump.man.patch
index c990364..e817d12 100644
--- a/debian/patches/jpegdump.man.patch
+++ b/debian/patches/jpegdump.man.patch
@@ -3,8 +3,10 @@ Author: Mathieu Malaterre <malat@debian.org>
 Forwarded: not-needed
 Last-Update: 2012-03-05
 
+Index: dicom3tools.git/appsrc/misc/jpegdump.man
+===================================================================
 --- /dev/null
-+++ b/appsrc/misc/jpegdump.man
++++ dicom3tools.git/appsrc/misc/jpegdump.man
 @@ -0,0 +1,14 @@
 +.TH JPEGDUMP: "1" "May 2010" "jpegdump" "User Commands"
 +.SH NAME
diff --git a/debian/patches/project.tmpl.patch b/debian/patches/project.tmpl.patch
index a4956b2..e98fb1b 100644
--- a/debian/patches/project.tmpl.patch
+++ b/debian/patches/project.tmpl.patch
@@ -3,8 +3,10 @@ Author: Mathieu Malaterre <malat@debian.org>
 Forwarded: not-needed
 Last-Update: 2012-03-05
 
---- a/config/Project.tmpl
-+++ b/config/Project.tmpl
+Index: dicom3tools.git/config/Project.tmpl
+===================================================================
+--- dicom3tools.git.orig/config/Project.tmpl
++++ dicom3tools.git/config/Project.tmpl
 @@ -18,16 +18,16 @@ XCOMM ----------------------------------
     PRIVCONFIGDIR = PrivConfigDir
  
diff --git a/debian/patches/pvrg_naming.patch b/debian/patches/pvrg_naming.patch
index 9a66c3d..7b6297d 100644
--- a/debian/patches/pvrg_naming.patch
+++ b/debian/patches/pvrg_naming.patch
@@ -3,8 +3,10 @@ Author: Mathieu Malaterre <malat@debian.org>
 Forwarded: not-needed
 Last-Update: 2012-03-05
 
---- a/appsrc/dcfile/dcjpeg.script
-+++ b/appsrc/dcfile/dcjpeg.script
+Index: dicom3tools.git/appsrc/dcfile/dcjpeg.script
+===================================================================
+--- dicom3tools.git.orig/appsrc/dcfile/dcjpeg.script
++++ dicom3tools.git/appsrc/dcfile/dcjpeg.script
 @@ -13,7 +13,7 @@ DCCP=dccp
  DCTORAW=dctoraw
  DCKEY=dckey
@@ -14,8 +16,10 @@ Last-Update: 2012-03-05
  
  infile="$1"
  shift
---- a/appsrc/dcfile/dcunjpeg.script
-+++ b/appsrc/dcfile/dcunjpeg.script
+Index: dicom3tools.git/appsrc/dcfile/dcunjpeg.script
+===================================================================
+--- dicom3tools.git.orig/appsrc/dcfile/dcunjpeg.script
++++ dicom3tools.git/appsrc/dcfile/dcunjpeg.script
 @@ -11,7 +11,7 @@ DCDUMP=dcdump
  DCTORAW=dctoraw
  DCKEY=dckey
diff --git a/debian/patches/reproducible_build.patch b/debian/patches/reproducible_build.patch
index 141db0d..c806af3 100644
--- a/debian/patches/reproducible_build.patch
+++ b/debian/patches/reproducible_build.patch
@@ -2,8 +2,10 @@ Description: Make the build reproducible
 Author: Chris Lamb <lamby@debian.org>
 Last-Update: 2016-08-19
 
---- dicom3tools-1.00~20160610072711.orig/support/setversion
-+++ dicom3tools-1.00~20160610072711/support/setversion
+Index: dicom3tools.git/support/setversion
+===================================================================
+--- dicom3tools.git.orig/support/setversion
++++ dicom3tools.git/support/setversion
 @@ -1,6 +1,6 @@
  #!/bin/sh
  
diff --git a/debian/patches/strip.patch b/debian/patches/strip.patch
index 0cdda0a..b0074a8 100644
--- a/debian/patches/strip.patch
+++ b/debian/patches/strip.patch
@@ -5,8 +5,10 @@ Author: Mathieu Malaterre <malat@debian.org>
 Forwarded: not-needed
 Last-Update: 2012-03-05
 
---- a/config/Imake.p-rules
-+++ b/config/Imake.p-rules
+Index: dicom3tools.git/config/Imake.p-rules
+===================================================================
+--- dicom3tools.git.orig/config/Imake.p-rules
++++ dicom3tools.git/config/Imake.p-rules
 @@ -72,7 +72,6 @@ program: objects deplibs						 @@\
  	$(CCC) -o $@ objects $(CPLUSPLUS_LDOPTIONS) locallibs \		 @@\
  		$(CPLUSPLUS_LDLIBS) syslibs \				 @@\
@@ -15,8 +17,10 @@ Last-Update: 2012-03-05
  									 @@\
  clean::									 @@\
  	$(RM) program$(EXECUTABLESUFFIX)
---- a/config/Imake.rules
-+++ b/config/Imake.rules
+Index: dicom3tools.git/config/Imake.rules
+===================================================================
+--- dicom3tools.git.orig/config/Imake.rules
++++ dicom3tools.git/config/Imake.rules
 @@ -110,7 +110,6 @@ program: objects deplibs						 @@\
  	$(CCC) -o $@ objects $(CPLUSPLUS_LDOPTIONS) locallibs \		 @@\
  		$(CPLUSPLUS_LDLIBS) syslibs \				 @@\
@@ -25,8 +29,10 @@ Last-Update: 2012-03-05
  									 @@\
  clean::									 @@\
  	$(RM) program
---- a/config/Imake.tmpl
-+++ b/config/Imake.tmpl
+Index: dicom3tools.git/config/Imake.tmpl
+===================================================================
+--- dicom3tools.git.orig/config/Imake.tmpl
++++ dicom3tools.git/config/Imake.tmpl
 @@ -203,7 +203,7 @@ XCOMM the platform-specific parameters -
  #endif
  
diff --git a/libsrc/src/dctool/attrtypv.cc b/libsrc/src/dctool/attrtypv.cc
index 5055d82..7c91977 100644
--- a/libsrc/src/dctool/attrtypv.cc
+++ b/libsrc/src/dctool/attrtypv.cc
@@ -141,6 +141,15 @@ writeErrorBadVRRange(bool verbose,bool newformat,TextOutputStream& log,ElementDi
 	    << endl;
 }
 
+// (000580)
+static void
+writeErrorBadTimezoneNL(bool verbose,bool newformat,TextOutputStream& log,ElementDictionary *dict,const Attribute *a,const char *vr,int valuenumber,const char *value,unsigned timezonedigitsfound) {
+	writeErrorBadVRValue(verbose,newformat,log,dict,a,vr,valuenumber,value);
+	log << MMsgDC(TimezoneLengthInvalidForDTVR);
+	log << " - " << MMsgDC(Got) << " <" << timezonedigitsfound << "> - " << MMsgDC(Expected) << " 4 " << MMsgDC(Digits);
+	log << endl;
+}
+
 bool
 Attribute::validateRetired(bool verbose,bool newformat,TextOutputStream& log,ElementDictionary *dict) const
 {
@@ -317,7 +326,11 @@ DateStringAttribute::validateVR(bool verbose,bool newformat,TextOutputStream& lo
 	while (!i) {
 		char *s=i();
 		int l=strlen(s);
-		if (l == 8 || l == 10) {
+		if (l != 8 && l != 10) {		// check length seperately from content (000581)
+			writeErrorBadVRLengthNL(verbose,newformat,log,dict,this,getVR(),vn,s,l,"== 8 or 10");
+			ok=false;
+		}
+		{	// check content regardless of length (000581) ...
 			const char *p=s;
 			if (*p != '1' &&  *p != '2') {
 				writeErrorBadVRCharNL(verbose,newformat,log,dict,this,getVR(),vn,s,*p);
@@ -371,10 +384,6 @@ DateStringAttribute::validateVR(bool verbose,bool newformat,TextOutputStream& lo
 				ok=false;
 			}
 		}
-		else {
-			writeErrorBadVRLengthNL(verbose,newformat,log,dict,this,getVR(),vn,s,l,"== 8 or 10");
-			ok=false;
-		}
 		++vn; ++i;
 		//if (s) delete[] s;
 	}
@@ -402,7 +411,11 @@ DateTimeStringAttribute::validateVR(bool verbose,bool newformat,TextOutputStream
 	while (!i) {
 		char *s=i();
 		int l=strlen(s);
-		if (l >= 2 && l <= 26) {
+		if (l < 2 || l > 26)  {		// check length seperately from content (000581)
+			writeErrorBadVRLengthNL(verbose,newformat,log,dict,this,getVR(),vn,s,l,">= 2 && <= 26");
+			ok=false;
+		}
+		{	// check content regardless of length (000581) ...
 			const char *p=s;
 			if (*p != '1' &&  *p != '2') {
 				writeErrorBadVRCharNL(verbose,newformat,log,dict,this,getVR(),vn,s,*p);
@@ -485,12 +498,18 @@ DateTimeStringAttribute::validateVR(bool verbose,bool newformat,TextOutputStream
 											while (*++p && isdigit(*p));
 										}
 										if (*p == '+' || *p == '-') {	// + or - ZZZZ
+											unsigned timezonedigitcount = 0;
 											while (*++p) {
+												++timezonedigitcount;
 												if (!isdigit(*p)) {
 													writeErrorBadVRCharNL(verbose,newformat,log,dict,this,getVR(),vn,s,*p);
 													ok=false;
 												}
 											}
+											if (timezonedigitcount != 4) { // (000580)
+												writeErrorBadTimezoneNL(verbose,newformat,log,dict,this,getVR(),vn,s,timezonedigitcount);
+												ok=false;
+											}
 										}
 									}
 								}
@@ -505,10 +524,6 @@ DateTimeStringAttribute::validateVR(bool verbose,bool newformat,TextOutputStream
 				}
 			}
 		}
-		else {
-			writeErrorBadVRLengthNL(verbose,newformat,log,dict,this,getVR(),vn,s,l,">= 2 && <= 26");
-			ok=false;
-		}
 		++vn; ++i;
 		//if (s) delete[] s;
 	}
@@ -863,7 +878,11 @@ TimeStringAttribute::validateVR(bool verbose,bool newformat,TextOutputStream& lo
 	while (!i) {
 		char *s=i();
 		int l=strlen(s);
-		if (l >= 2 && l <= 16) {
+		if (l < 2 || l > 16) {		// check length seperately from content (000581)
+			writeErrorBadVRLengthNL(verbose,newformat,log,dict,this,getVR(),vn,s,l,">= 2 && <= 16");
+			ok=false;
+		}
+		{	// check content regardless of length (000581) ...
 			const char *p=s;
 			if (*p != '0' &&  *p != '1' &&  *p != '2') {
 				writeErrorBadVRCharNL(verbose,newformat,log,dict,this,getVR(),vn,s,*p);
@@ -925,10 +944,6 @@ TimeStringAttribute::validateVR(bool verbose,bool newformat,TextOutputStream& lo
 				}
 			}
 		}
-		else {
-			writeErrorBadVRLengthNL(verbose,newformat,log,dict,this,getVR(),vn,s,l,">= 2 && <= 16");
-			ok=false;
-		}
 		++vn; ++i;
 		//if (s) delete[] s;
 	}
diff --git a/libsrc/src/dctool/dcopto.cc b/libsrc/src/dctool/dcopto.cc
index dca058a..3cd5a8b 100644
--- a/libsrc/src/dctool/dcopto.cc
+++ b/libsrc/src/dctool/dcopto.cc
@@ -277,7 +277,17 @@ DicomOutputOptions::DicomOutputOptions(GetNamedOptions &options)
 			Tag tag;
 			if (getAttributeTagFromStringHexForm(args[0],tag)
 			 || dictionary.getTag(args[0],tag)) {
-				const char *vr=dictionary.getValueRepresentation(tag);
+//cerr << "DicomOutputOptions::DicomOutputOptions: tag = " << tag << endl;
+				const char *vr=NULL;
+				if (tag.isPrivateGroup() && tag.isPrivateOwner()) {	// (000582)
+					vr="LO";	// PS3.5-7.8.1;
+//cerr << "DicomOutputOptions::DicomOutputOptions: adding owner = " << args[1] << endl;
+					dictionary.addOwner(tag,args[1]);	// (000582) add owner so later uses of private elements in block are recognized and return correct VR
+				}
+				else {
+					vr=dictionary.getValueRepresentation(tag);
+				}
+//cerr << "DicomOutputOptions::DicomOutputOptions: vr = " << vr << endl;
 				if(!vr) vr="UN";
 				Attribute *a=newAttribute(vr,tag);
 				Assert(a);
@@ -312,7 +322,14 @@ DicomOutputOptions::DicomOutputOptions(GetNamedOptions &options)
 			Tag tag;
 			if (getAttributeTagFromStringHexForm(args[0],tag)
 			 || dictionary.getTag(args[0],tag)) {
-				const char *vr=dictionary.getValueRepresentation(tag);
+				const char *vr=NULL;
+				if (tag.isPrivateGroup() && tag.isPrivateOwner()) {	// (000582)
+					vr="LO";	// PS3.5-7.8.1;
+					dictionary.addOwner(tag,args[1]);	// (000582) add owner so later uses of private elements in block are recognized and return correct VR
+				}
+				else {
+					vr=dictionary.getValueRepresentation(tag);
+				}
 				if(!vr) vr="UN";
 				Attribute *a=newAttribute(vr,tag);
 				Assert(a);
@@ -348,7 +365,14 @@ DicomOutputOptions::DicomOutputOptions(GetNamedOptions &options)
 		Tag tag;
 		if (getAttributeTagFromStringHexForm(arg,tag)
 		 || dictionary.getTag(arg,tag)) {
-			const char *vr=dictionary.getValueRepresentation(tag);
+			const char *vr=NULL;
+			if (tag.isPrivateGroup() && tag.isPrivateOwner()) {	// (000582)
+				vr="LO";	// PS3.5-7.8.1;
+				dictionary.addOwner(tag,args[1]);	// (000582) add owner so later uses of private elements in block are recognized and return correct VR
+			}
+			else {
+				vr=dictionary.getValueRepresentation(tag);
+			}
 			if(!vr) vr="UN";
 			Attribute *a=newAttribute(vr,tag);
 			Assert(a);
diff --git a/libsrc/src/dctool/elmdict.cc b/libsrc/src/dctool/elmdict.cc
index 25f3236..380916e 100644
--- a/libsrc/src/dctool/elmdict.cc
+++ b/libsrc/src/dctool/elmdict.cc
@@ -69,6 +69,8 @@ const ElementDictionaryTableEntry *
 ElementDictionary::operator[] (Tag tag) const
 {
 	ElementDictionaryTableEntry *e = 0;
+//cerr << "ElementDictionary::operator[] (Tag tag): Tag group=" << hex << tag.getGroup() << dec << endl;
+//cerr << "ElementDictionary::operator[] (Tag tag): Tag element=" << hex << tag.getElement() << dec << endl;
 
 	// Repeating group/element mechanism is NOT applied to private groups
 	// except Papyrus 3.0 60xx annotations
@@ -77,9 +79,12 @@ ElementDictionary::operator[] (Tag tag) const
 	// exclusions to odd group rule such as Variable Pixel Data
 
 	if (tag.isPrivateGroup()) {
+//cerr << "ElementDictionary::operator[] (Tag tag): isPrivateGroup" << endl;
 		if (CurrentOwners) {
+//cerr << "ElementDictionary::operator[] (Tag tag): have CurrentOwners" << endl;
 			const char *owner=(*CurrentOwners)[tag];
 			if (owner) {
+//cerr << "ElementDictionary::operator[] (Tag tag): have Owner=<" << owner << ">" << endl;
 				// Try first with block in case owner is ambiguous
 				// (this is counter to the standard but happens)
 				IndexEntryTagAndOwnerAndBlock *ei=
@@ -91,8 +96,6 @@ ElementDictionary::operator[] (Tag tag) const
 				// block and hence is used as a "wildcard" ... this is
 				// the "standard" way to do it and is the most common path 
 				if (!ei) {
-//cerr << "Tag group=" << hex << tag.getGroup() << dec << endl;
-//cerr << "Tag element=" << hex << tag.getElement() << dec << endl;
 //cerr << "Owner=<" << owner << ">" << endl;
 					Tag testtag=tag.getRepeatingBase();
 //cerr << "Test tag group=" << hex << testtag.getGroup() << dec << endl;
@@ -113,14 +116,17 @@ ElementDictionary::operator[] (Tag tag) const
 							0)];
 					}
 				}
-				if (ei) e=Table+ei->getIndex();
+				if (ei) {
+//cerr << "ElementDictionary::operator[] (Tag tag): have IndexEntryTagAndOwnerAndBlock" << endl;
+					e=Table+ei->getIndex();
+				}
 			}
 		}
 	}
 	else {
 		Tag testtag=tag.getRepeatingBase();
 		IndexEntryTag *ei = (*TagIndex)[testtag];
-		if(ei) e=Table+ei->getIndex();
+		if (ei) e=Table+ei->getIndex();
 	}
 
 	// Don't assume all elements == 0 are GroupLength
@@ -145,6 +151,7 @@ const char *
 ElementDictionary::getValueRepresentation(Tag t) const
 {
 	const ElementDictionaryTableEntry *e = (*this)[t];
+//cerr << "ElementDictionary::getValueRepresentation[] (Tag t): " << (e ? "" : "do not") << " have entry" << endl;
 	return e ? e->ValueRepresentation : 0;
 }
 
diff --git a/libsrc/src/generic/platform.cc b/libsrc/src/generic/platform.cc
index 567f9d3..8ede728 100644
--- a/libsrc/src/generic/platform.cc
+++ b/libsrc/src/generic/platform.cc
@@ -4,4 +4,4 @@
 
 #include "platform.h"
 
-const char* dicom3tools_platform_string = "Darwin graythin-18.home 17.7.0 Darwin Kernel Version 17.7.0: Fri Oct 30 13:34:27 PDT 2020; root:xnu-4570.71.82.8~1/RELEASE_X86_64 x86_64";
+const char* dicom3tools_platform_string = "Darwin graythin-4.local 17.7.0 Darwin Kernel Version 17.7.0: Fri Oct 30 13:34:27 PDT 2020; root:xnu-4570.71.82.8~1/RELEASE_X86_64 x86_64";
diff --git a/libsrc/src/generic/version.cc b/libsrc/src/generic/version.cc
index 741be5f..791dc2b 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.20220618093127";
+const char* dicom3tools_version_string = "1.00.snapshot.20230225185712";
diff --git a/libsrc/src/locale/mesgtext.tpl b/libsrc/src/locale/mesgtext.tpl
index 37d0cfe..4ab168e 100755
--- a/libsrc/src/locale/mesgtext.tpl
+++ b/libsrc/src/locale/mesgtext.tpl
@@ -68,6 +68,7 @@ Index="DifferentStudyInstanceUIDForSeriesInstanceUID"	English="Different StudyIn
 Index="DifferentStudyInstanceUIDForSOPInstanceUID"		English="Different StudyInstanceUID for same SOPInstanceUID"
 Index="DifferentValueRepresentationInOneInstanceComparedToTheOther"			English="Different value representation"
 Index="Diffing"				English="Diffing"
+Index="Digits"				English="digits"
 Index="DimensionIndexValueForInStackPositionNumberDoesNotEqualValueOfInStackPositionNumber"			English="DimensionIndexValue for InStackPositionNumber does not equal value of InStackPositionNumber"
 Index="DimensionIndexValueForTemporalPositionIndexDoesNotEqualValueOfTemporalPositionIndex"			English="DimensionIndexValue for TemporalPositionIndex does not equal value of InStackPositionNumber"
 Index="DirectoryOffsetInvalid"			English="Directory record offset invalid - doesn't point to a directory record"
@@ -268,6 +269,7 @@ Index="StudyInstanceUIDHasSameValueAsFrameOfReferenceUID"			English="StudyInstan
 Index="TagReadFailed"				English="Tag read failed"
 Index="TagsDuplicated"				English="Tags out of order - same element occurs twice"
 Index="TagsOutOfOrder"				English="Tags out of order - trailing garbage, wrong transfer syntax, or not valid DICOM"
+Index="TimezoneLengthInvalidForDTVR"				English="Timezone has wrong length"
 Index="TooManyComponentDelimitersInPersonName"		English="Too many delimiters (^) in PersonName"
 Index="TooManyComponentGroupDelimitersInPersonName"		English="Too many component group delimiters (=) in PersonName"
 Index="TotalPixelMatrixColumnsNotAnExactMultipleOfColumns"	English="TotalPixelMatrixColumns is not an exact multiple of Columns"
diff --git a/libsrc/standard/elmdict/dicom3.tpl b/libsrc/standard/elmdict/dicom3.tpl
index 33414a0..6e1c8e7 100644
--- a/libsrc/standard/elmdict/dicom3.tpl
+++ b/libsrc/standard/elmdict/dicom3.tpl
@@ -194,6 +194,48 @@
 (0008,030E) VERS="3"	VR="UT"   VM="1"	Keyword="PrivateDataElementDescription"						Name="Private Data Element Description"
 (0008,030F) VERS="3"	VR="UT"   VM="1"	Keyword="PrivateDataElementEncoding"						Name="Private Data Element Encoding"
 (0008,0310) VERS="3"	VR="SQ"   VM="1"	Keyword="PrivateDataElementDefinitionSequence"				Name="Private Data Element Definition Sequence"
+(0008,0400) VERS="3"	VR="SQ"   VM="1"	Keyword="ScopeOfInventorySequence"							Name="Scope of Inventory Sequence"
+(0008,0401) VERS="3"	VR="LT"   VM="1"	Keyword="InventoryPurpose"									Name="Inventory Purpose"
+(0008,0402) VERS="3"	VR="LT"   VM="1"	Keyword="InventoryInstanceDescription"						Name="Inventory Instance Description"
+(0008,0403) VERS="3"	VR="CS"   VM="1"	Keyword="InventoryLevel"									Name="Inventory Level"
+(0008,0404) VERS="3"	VR="DT"   VM="1"	Keyword="ItemInventoryDateTime"								Name="Item Inventory DateTime"
+(0008,0405) VERS="3"	VR="CS"   VM="1"	Keyword="RemovedFromOperationalUse"							Name="Removed from Operational Use"
+(0008,0406) VERS="3"	VR="SQ"   VM="1"	Keyword="ReasonForRemovalCodeSequence"						Name="Reason for Removal Code Sequence"
+(0008,0407) VERS="3"	VR="UR"   VM="1"	Keyword="StoredInstanceBaseURI"								Name="Stored Instance Base URI"
+(0008,0408) VERS="3"	VR="UR"   VM="1"	Keyword="FolderAccessURI"									Name="Folder Access URI"
+(0008,0409) VERS="3"	VR="UR"   VM="1"	Keyword="FileAccessURI"										Name="File Access URI"
+(0008,040A) VERS="3"	VR="CS"   VM="1"	Keyword="ContainerFileType"									Name="Container File Type"
+(0008,040B) VERS="3"	VR="UR"   VM="1"	Keyword="FilenameInContainer"								Name="Filename in Container"
+(0008,040C) VERS="3"	VR="UV"   VM="1"	Keyword="FileOffsetInContainer"								Name="File Offset in Container"
+(0008,040D) VERS="3"	VR="UV"   VM="1"	Keyword="FileLengthInContainer"								Name="File Length in Container"
+(0008,040E) VERS="3"	VR="UI"   VM="1"	Keyword="StoredInstanceTransferSyntaxUID"					Name="Stored Instance Transfer Syntax UID"
+(0008,040F) VERS="3"	VR="CS"   VM="1-n"	Keyword="ExtendedMatchingMechanisms"						Name="Extended Matching Mechanisms"
+(0008,0410) VERS="3"	VR="SQ"   VM="1"	Keyword="RangeMatchingSequence"								Name="Range Matching Sequence"
+(0008,0411) VERS="3"	VR="SQ"   VM="1"	Keyword="ListOfUIDMatchingSequence"							Name="List of UID Matching Sequence"
+(0008,0412) VERS="3"	VR="SQ"   VM="1"	Keyword="EmptyValueMatchingSequence"						Name="Empty Value Matching Sequence"
+(0008,0413) VERS="3"	VR="SQ"   VM="1"	Keyword="GeneralMatchingSequence"							Name="General Matching Sequence"
+(0008,0414) VERS="3"	VR="US"   VM="1"	Keyword="RequestedStatusInterval"							Name="Requested Status Interval"
+(0008,0415) VERS="3"	VR="CS"   VM="1"	Keyword="RetainInstances"									Name="Retain Instances"
+(0008,0416) VERS="3"	VR="DT"   VM="1"	Keyword="ExpirationDateTime"								Name="Expiration DateTime"
+(0008,0417) VERS="3"	VR="CS"   VM="1"	Keyword="TransactionStatus"									Name="Transaction Status"
+(0008,0418) VERS="3"	VR="LT"   VM="1"	Keyword="TransactionStatusComment"							Name="Transaction Status Comment"
+(0008,0419) VERS="3"	VR="SQ"   VM="1"	Keyword="FileSetAccessSequence"								Name="File Set Access Sequence"
+(0008,041A) VERS="3"	VR="SQ"   VM="1"	Keyword="FileAccessSequence"								Name="File Access Sequence"
+(0008,041B) VERS="3"	VR="OB"   VM="1"	Keyword="RecordKey"											Name="Record Key"
+(0008,041C) VERS="3"	VR="OB"   VM="1"	Keyword="PriorRecordKey"									Name="Prior Record Key"
+(0008,041D) VERS="3"	VR="SQ"   VM="1"	Keyword="MetadataSequence"									Name="Metadata Sequence"
+(0008,041E) VERS="3"	VR="SQ"   VM="1"	Keyword="UpdatedMetadataSequence"							Name="Updated Metadata Sequence"
+(0008,041F) VERS="3"	VR="DT"   VM="1"	Keyword="StudyUpdateDateTime"								Name="Study Update DateTime"
+(0008,0420) VERS="3"	VR="SQ"   VM="1"	Keyword="InventoryAccessEndPointsSequence"					Name="Inventory Access End Points Sequence"
+(0008,0421) VERS="3"	VR="SQ"   VM="1"	Keyword="StudyAccessEndPointsSequence"						Name="Study Access End Points Sequence"
+(0008,0422) VERS="3"	VR="SQ"   VM="1"	Keyword="IncorporatedInventoryInstanceSequence"				Name="Incorporated Inventory Instance Sequence"
+(0008,0423) VERS="3"	VR="SQ"   VM="1"	Keyword="InventoriedStudiesSequence"						Name="Inventoried Studies Sequence"
+(0008,0424) VERS="3"	VR="SQ"   VM="1"	Keyword="InventoriedSeriesSequence"							Name="Inventoried Series Sequence"
+(0008,0425) VERS="3"	VR="SQ"   VM="1"	Keyword="InventoriedInstancesSequence"						Name="Inventoried Instances Sequence"
+(0008,0426) VERS="3"	VR="CS"   VM="1"	Keyword="InventoryCompletionStatus"							Name="Inventory Completion Status"
+(0008,0427) VERS="3"	VR="UL"   VM="1"	Keyword="NumberOfStudyRecordsInInstance"					Name="Number of Study Records in Instance"
+(0008,0428) VERS="3"	VR="UV"   VM="1"	Keyword="TotalNumberOfStudyRecords"							Name="Total Number of Study Records"
+(0008,0429) VERS="3"	VR="UV"   VM="1"	Keyword="MaximumNumberOfRecords"							Name="Maximum Number of Records"
 (0008,1000) VERS="RET"	VR="AE"   VM="1"	Keyword="NetworkID"				Name="Network ID"
 (0008,1010) VERS="3"	VR="SH"   VM="1"	Keyword="StationName"				Name="Station Name"
 (0008,1030) VERS="3"	VR="LO"   VM="1"	Keyword="StudyDescription"			Name="Study Description"
@@ -395,6 +437,7 @@
 (0012,0051) VERS="3"	VR="ST"   VM="1"	Keyword="ClinicalTrialTimePointDescription"	Name="Clinical Trial Time Point Description"
 (0012,0052) VERS="3"	VR="FD"   VM="1"	Keyword="LongitudinalTemporalOffsetFromEvent"	Name="Longitudinal Temporal Offset from Event"
 (0012,0053) VERS="3"	VR="CS"   VM="1"	Keyword="LongitudinalTemporalEventType"			Name="Longitudinal Temporal Event Type"
+(0012,0054) VERS="3"	VR="SQ"   VM="1"	Keyword="ClinicalTrialTimePointTypeCodeSequence"	Name="Clinical Trial Time Point Type Code Sequence"
 (0012,0060) VERS="3"	VR="LO"   VM="1"	Keyword="ClinicalTrialCoordinatingCenterName"	Name="Clinical Trial Coordinating Center Name"
 (0012,0062) VERS="3"	VR="CS"   VM="1"	Keyword="PatientIdentityRemoved"		Name="Patient Identity Removed"
 (0012,0063) VERS="3"	VR="LO"   VM="1-n"	Keyword="DeidentificationMethod"		Name="De-identification Method"
@@ -2151,7 +2194,25 @@
 (003A,0314)	VERS="3"	VR="DT"   VM="1"	Keyword="ImpedanceMeasurementDateTime"			Name="Impedance Measurement DateTime"
 (003A,0315)	VERS="3"	VR="DS"   VM="1"	Keyword="ImpedanceMeasurementFrequency"			Name="Impedance Measurement Frequency"
 (003A,0316)	VERS="3"	VR="CS"   VM="1"	Keyword="ImpedanceMeasurementCurrentType"		Name="Impedance Measurement Current Type"
-(0040,0001) VERS="3"	VR="AE"   VM="1-n"	Keyword="ScheduledStationAETitle"		Name="Scheduled Station AE Title"
+(003A,0317)	VERS="3"	VR="CS"   VM="1"	Keyword="WaveformAmplifierType"					Name="Waveform Amplifier Type"
+(003A,0318)	VERS="3"	VR="SQ"   VM="1"	Keyword="FilterLowFrequencyCharacteristicsSequence"		Name="Filter Low Frequency Characteristics Sequence"
+(003A,0319)	VERS="3"	VR="SQ"   VM="1"	Keyword="FilterHighFrequencyCharacteristicsSequence"		Name="Filter High Frequency Characteristics Sequence"
+(003A,0320)	VERS="3"	VR="SQ"   VM="1"	Keyword="SummarizedFilterLookupTable"			Name="Summarized Filter Lookup Table Sequence"
+(003A,0321)	VERS="3"	VR="SQ"   VM="1"	Keyword="NotchFilterCharacteristicsSequence"	Name="Notch Filter Characteristics Sequence"
+(003A,0322)	VERS="3"	VR="CS"   VM="1"	Keyword="WaveformFilterType"					Name="Waveform Filter Type"
+(003A,0323)	VERS="3"	VR="SQ"   VM="1"	Keyword="AnalogFilterCharacteristicsSequence"	Name="Analog Filter Characteristics Sequence"
+(003A,0324)	VERS="3"	VR="DS"   VM="1"	Keyword="AnalogFilterRollOff"					Name="Analog Filter Roll Off "
+(003A,0325)	VERS="3"	VR="SQ"   VM="1"	Keyword="AnalogFilterType"						Name="Analog Filter Type Code Sequence"
+(003A,0326)	VERS="3"	VR="SQ"   VM="1"	Keyword="DigitalFilterCharacteristicsSequence"	Name="Digital Filter Characteristics Sequence"
+(003A,0327)	VERS="3"	VR="IS"   VM="1"	Keyword="DigitalFilterOrder"					Name="Digital Filter Order"
+(003A,0328)	VERS="3"	VR="SQ"   VM="1"	Keyword="DigitalFilterTypeCodeSequence"			Name="Digital Filter Type Code Sequence"
+(003A,0329)	VERS="3"	VR="ST"   VM="1"	Keyword="WaveformFilterDescription"				Name="Waveform Filter Description"
+(003A,032A)	VERS="3"	VR="SQ"   VM="1"	Keyword="FilterLookupTableSequence"				Name="Filter Lookup Table Sequence"
+(003A,032B)	VERS="3"	VR="ST"   VM="1"	Keyword="FilterLookupTableDescription"			Name="Filter Lookup Table Description"
+(003A,032C)	VERS="3"	VR="SQ"   VM="1"	Keyword="FrequencyEncodingCodeSequence"			Name="Frequency Encoding Code Sequence"
+(003A,032D)	VERS="3"	VR="SQ"   VM="1"	Keyword="MagnitudeEncodingCodeSequence"			Name="Magnitude Encoding Code Sequence"
+(003A,032E)	VERS="3"	VR="OD"   VM="1"	Keyword="FilterLookupTableData"					Name="Filter Lookup Table Data"
+(0040,0001) VERS="3"	VR="AE"   VM="1-n"	Keyword="ScheduledStationAETitle"			Name="Scheduled Station AE Title"
 (0040,0002) VERS="3"	VR="DA"   VM="1"	Keyword="ScheduledProcedureStepStartDate"	Name="Scheduled Procedure Step Start Date"
 (0040,0003) VERS="3"	VR="TM"   VM="1"	Keyword="ScheduledProcedureStepStartTime"	Name="Scheduled Procedure Step Start Time"
 (0040,0004) VERS="3"	VR="DA"   VM="1"	Keyword="ScheduledProcedureStepEndDate"		Name="Scheduled Procedure Step End Date"
@@ -3049,6 +3110,7 @@
 (0070,0311) VERS="3"	VR="SQ"   VM="1"	Keyword="FiducialIdentifierCodeSequence"		Name="Fiducial Identifier Code Sequence"
 (0070,0312) VERS="3"	VR="FD"   VM="1"	Keyword="ContourUncertaintyRadius"			Name="Contour Uncertainty Radius"
 (0070,0314) VERS="3"	VR="SQ"   VM="1"	Keyword="UsedFiducialsSequence"				Name="Used Fiducials Sequence"
+(0070,0315) VERS="3"	VR="SQ"   VM="1"	Keyword="UsedRTStructureSetROISequence"				Name="Used RT Structure Set ROI Sequence"
 (0070,0318) VERS="3"	VR="SQ"   VM="1"	Keyword="GraphicCoordinatesDataSequence"		Name="Graphic Coordinates Data Sequence"
 (0070,031A) VERS="3"	VR="UI"   VM="1"	Keyword="FiducialUID"					Name="Fiducial UID"
 (0070,031B) VERS="3"	VR="UI"   VM="1"	Keyword="ReferencedFiducialUID"			Name="Referenced Fiducial UID"
@@ -3601,6 +3663,60 @@
 (3002,0050) VERS="3"	VR="SQ"   VM="1"	Keyword="PrimaryFluenceModeSequence"	Name="Primary Fluence Mode Sequence"
 (3002,0051) VERS="3"	VR="CS"   VM="1"	Keyword="FluenceMode"					Name="Fluence Mode"
 (3002,0052) VERS="3"	VR="SH"   VM="1"	Keyword="FluenceModeID"					Name="Fluence Mode ID"
+(3002,0100) VERS="3"	VR="IS"   VM="1"	Keyword="SelectedFrameNumber"					Name="Selected Frame Number"
+(3002,0101) VERS="3"	VR="SQ"   VM="1"	Keyword="SelectedFrameFunctionalGroupsSequence"					Name="Selected Frame Functional Groups Sequence"
+(3002,0102) VERS="3"	VR="SQ"   VM="1"	Keyword="RTImageFrameGeneralContentSequence"					Name="RT Image Frame General Content Sequence"
+(3002,0103) VERS="3"	VR="SQ"   VM="1"	Keyword="RTImageFrameContextSequence"					Name="RT Image Frame Context Sequence"
+(3002,0104) VERS="3"	VR="SQ"   VM="1"	Keyword="RTImageScopeSequence"					Name="RT Image Scope Sequence"
+(3002,0105) VERS="3"	VR="CS"   VM="1"	Keyword="BeamModifierCoordinatesPresenceFlag"					Name="Beam Modifier Coordinates Presence Flag"
+(3002,0106) VERS="3"	VR="FD"   VM="1"	Keyword="StartCumulativeMeterset"					Name="Start Cumulative Meterset"
+(3002,0107) VERS="3"	VR="FD"   VM="1"	Keyword="StopCumulativeMeterset"					Name="Stop Cumulative Meterset"
+(3002,0108) VERS="3"	VR="SQ"   VM="1"	Keyword="RTAcquisitionPatientPositionSequence"					Name="RT Acquisition Patient Position Sequence"
+(3002,0109) VERS="3"	VR="SQ"   VM="1"	Keyword="RTImageFrameImagingDevicePositionSequence"					Name="RT Image Frame Imaging Device Position Sequence"
+(3002,010A) VERS="3"	VR="SQ"   VM="1"	Keyword="RTImageFramekVRadiationAcquisitionSequence"					Name="RT Image Frame kV Radiation Acquisition Sequence"
+(3002,010B) VERS="3"	VR="SQ"   VM="1"	Keyword="RTImageFrameMVRadiationAcquisitionSequence"					Name="RT Image Frame MV Radiation Acquisition Sequence"
+(3002,010C) VERS="3"	VR="SQ"   VM="1"	Keyword="RTImageFrameRadiationAcquisitionSequence"					Name="RT Image Frame Radiation Acquisition Sequence"
+(3002,010D) VERS="3"	VR="SQ"   VM="1"	Keyword="ImagingSourcePositionSequence"					Name="Imaging Source Position Sequence"
+(3002,010E) VERS="3"	VR="SQ"   VM="1"	Keyword="ImageReceptorPositionSequence"					Name="Image Receptor Position Sequence"
+(3002,010F) VERS="3"	VR="FD"   VM="16"	Keyword="DevicePositionToEquipmentMappingMatrix"					Name="Device Position to Equipment Mapping Matrix"
+(3002,0110) VERS="3"	VR="SQ"   VM="1"	Keyword="DevicePositionParameterSequence"					Name="Device Position Parameter Sequence"
+(3002,0111) VERS="3"	VR="CS"   VM="1"	Keyword="ImagingSourceLocationSpecificationType"					Name="Imaging Source Location Specification Type"
+(3002,0112) VERS="3"	VR="SQ"   VM="1"	Keyword="ImagingDeviceLocationMatrixSequence"					Name="Imaging Device Location Matrix Sequence"
+(3002,0113) VERS="3"	VR="SQ"   VM="1"	Keyword="ImagingDeviceLocationParameterSequence"					Name="Imaging Device Location Parameter Sequence"
+(3002,0114) VERS="3"	VR="SQ"   VM="1"	Keyword="ImagingApertureSequence"					Name="Imaging Aperture Sequence"
+(3002,0115) VERS="3"	VR="CS"   VM="1"	Keyword="ImagingApertureSpecificationType"					Name="Imaging Aperture Specification Type"
+(3002,0116) VERS="3"	VR="US"   VM="1"	Keyword="NumberOfAcquisitionDevices"					Name="Number of Acquisition Devices"
+(3002,0117) VERS="3"	VR="SQ"   VM="1"	Keyword="AcquisitionDeviceSequence"					Name="Acquisition Device Sequence"
+(3002,0118) VERS="3"	VR="SQ"   VM="1"	Keyword="AcquisitionTaskSequence"					Name="Acquisition Task Sequence"
+(3002,0119) VERS="3"	VR="SQ"   VM="1"	Keyword="AcquisitionTaskWorkitemCodeSequence"					Name="Acquisition Task Workitem Code Sequence"
+(3002,011A) VERS="3"	VR="SQ"   VM="1"	Keyword="AcquisitionSubtaskSequence"					Name="Acquisition Subtask Sequence"
+(3002,011B) VERS="3"	VR="SQ"   VM="1"	Keyword="SubtaskWorkitemCodeSequence"					Name="Subtask Workitem Code Sequence"
+(3002,011C) VERS="3"	VR="US"   VM="1"	Keyword="AcquisitionTaskIndex"					Name="Acquisition Task Index"
+(3002,011D) VERS="3"	VR="US"   VM="1"	Keyword="AcquisitionSubtaskIndex"					Name="Acquisition Subtask Index"
+(3002,011E) VERS="3"	VR="SQ"   VM="1"	Keyword="ReferencedBaselineParametersRTRadiationInstanceSequence"					Name="Referenced Baseline Parameters RT Radiation Instance Sequence"
+(3002,011F) VERS="3"	VR="SQ"   VM="1"	Keyword="PositionAcquisitionTemplateIdentificationSequence"					Name="Position Acquisition Template Identification Sequence"
+(3002,0120) VERS="3"	VR="ST"   VM="1"	Keyword="PositionAcquisitionTemplateID"					Name="Position Acquisition Template ID"
+(3002,0121) VERS="3"	VR="LO"   VM="1"	Keyword="PositionAcquisitionTemplateName"					Name="Position Acquisition Template Name"
+(3002,0122) VERS="3"	VR="SQ"   VM="1"	Keyword="PositionAcquisitionTemplateCodeSequence"					Name="Position Acquisition Template Code Sequence"
+(3002,0123) VERS="3"	VR="LT"   VM="1"	Keyword="PositionAcquisitionTemplateDescription"					Name="Position Acquisition Template Description"
+(3002,0124) VERS="3"	VR="SQ"   VM="1"	Keyword="AcquisitionTaskApplicabilitySequence"					Name="Acquisition Task Applicability Sequence"
+(3002,0125) VERS="3"	VR="SQ"   VM="1"	Keyword="ProjectionImagingAcquisitionParameterSequence"					Name="Projection Imaging Acquisition Parameter Sequence"
+(3002,0126) VERS="3"	VR="SQ"   VM="1"	Keyword="CTImagingAcquisitionParameterSequence"					Name="CT Imaging Acquisition Parameter Sequence"
+(3002,0127) VERS="3"	VR="SQ"   VM="1"	Keyword="KVImagingGenerationParametersSequence"					Name="KV Imaging Generation Parameters Sequence"
+(3002,0128) VERS="3"	VR="SQ"   VM="1"	Keyword="MVImagingGenerationParametersSequence"					Name="MV Imaging Generation Parameters Sequence"
+(3002,0129) VERS="3"	VR="CS"   VM="1"	Keyword="AcquisitionSignalType"					Name="Acquisition Signal Type"
+(3002,012A) VERS="3"	VR="CS"   VM="1"	Keyword="AcquisitionMethod"					Name="Acquisition Method"
+(3002,012B) VERS="3"	VR="SQ"   VM="1"	Keyword="ScanStartPositionSequence"					Name="Scan Start Position Sequence"
+(3002,012C) VERS="3"	VR="SQ"   VM="1"	Keyword="ScanStopPositionSequence"					Name="Scan Stop Position Sequence"
+(3002,012D) VERS="3"	VR="FD"   VM="1"	Keyword="ImagingSourceToBeamModifierDefinitionPlaneDistance"					Name="Imaging Source to Beam Modifier Definition Plane Distance"
+(3002,012E) VERS="3"	VR="CS"   VM="1"	Keyword="ScanArcType"					Name="Scan Arc Type"
+(3002,012F) VERS="3"	VR="CS"   VM="1"	Keyword="DetectorPositioningType"					Name="Detector Positioning Type"
+(3002,0130) VERS="3"	VR="SQ"   VM="1"	Keyword="AdditionalRTAccessoryDeviceSequence"					Name="Additional RT Accessory Device Sequence"
+(3002,0131) VERS="3"	VR="SQ"   VM="1"	Keyword="DeviceSpecificAcquisitionParameterSequence"					Name="Device-Specific Acquisition Parameter Sequence"
+(3002,0132) VERS="3"	VR="SQ"   VM="1"	Keyword="ReferencedPositionReferenceInstanceSequence"					Name="Referenced Position Reference Instance Sequence"
+(3002,0133) VERS="3"	VR="SQ"   VM="1"	Keyword="EnergyDerivationCodeSequence"					Name="Energy Derivation Code Sequence"
+(3002,0134) VERS="3"	VR="FD"   VM="1"	Keyword="MaximumCumulativeMetersetExposure"					Name="Maximum Cumulative Meterset Exposure"
+(3002,0135) VERS="3"	VR="SQ"   VM="1"	Keyword="AcquisitionInitiationSequence"					Name="Acquisition Initiation Sequence"
 (3004,0001) VERS="3"	VR="CS"   VM="1"	Keyword="DVHType"				Name="DVH Type"
 (3004,0002) VERS="3"	VR="CS"   VM="1"	Keyword="DoseUnits"				Name="Dose Units"
 (3004,0004) VERS="3"	VR="CS"   VM="1"	Keyword="DoseType"				Name="Dose Type"
@@ -3733,7 +3849,11 @@
 (3008,0082) VERS="3"	VR="IS"   VM="1"	Keyword="ReferencedMeasuredDoseReferenceNumber"			Name="Referenced Measured Dose Reference Number"
 (3008,0090) VERS="3"	VR="SQ"   VM="1"	Keyword="ReferencedCalculatedDoseReferenceSequence"		Name="Referenced Calculated Dose Reference Sequence"
 (3008,0092) VERS="3"	VR="IS"   VM="1"	Keyword="ReferencedCalculatedDoseReferenceNumber"		Name="Referenced Calculated Dose Reference Number"
-(3008,00A0) VERS="3"	VR="SQ"   VM="1"	Keyword="BeamLimitingDeviceLeafPairsSequence"			Name="Beam Limiting Device Leaf Pairs Sequence"
+(3008,00A0) VERS="3"	VR="SQ"   VM="1"	Keyword="BeamLimitingDeviceLeafPairsSequence"			Name="Beam Limiting Device Leaf Pairs Sequence"=
+(3008,00A1) VERS="3"	VR="SQ"   VM="1"	Keyword="EnhancedRTBeamLimitingDeviceSequence"			Name="Enhanced RT Beam Limiting Device Sequence"
+(3008,00A2) VERS="3"	VR="SQ"   VM="1"	Keyword="EnhancedRTBeamLimitingOpeningSequence"			Name="Enhanced RT Beam Limiting Opening Sequence"
+(3008,00A3) VERS="3"	VR="CS"   VM="1"	Keyword="EnhancedRTBeamLimitingDeviceDefinitionFlag"	Name="Enhanced RT Beam Limiting Device Definition Flag"
+(3008,00A4) VERS="3"	VR="FD"   VM="2-2n"	Keyword="ParallelRTBeamDelimiterOpeningExtents"			Name="Parallel RT Beam Delimiter Opening Extents"
 (3008,00B0) VERS="3"	VR="SQ"   VM="1"	Keyword="RecordedWedgeSequence"					Name="Recorded Wedge Sequence"
 (3008,00C0) VERS="3"	VR="SQ"   VM="1"	Keyword="RecordedCompensatorSequence"				Name="Recorded Compensator Sequence"
 (3008,00D0) VERS="3"	VR="SQ"   VM="1"	Keyword="RecordedBlockSequence"					Name="Recorded Block Sequence"
@@ -4577,7 +4697,7 @@
 (3010,0087) VERS="3"	VR="SQ"   VM="1"	Keyword="WeekdayFractionPatternSequence"				Name="Weekday Fraction Pattern Sequence"
 (3010,0088) VERS="3"	VR="SQ"   VM="1"	Keyword="DeliveryTimeStructureCodeSequence"				Name="Delivery Time Structure Code Sequence"
 (3010,0089) VERS="3"	VR="SQ"   VM="1"	Keyword="TreatmentSiteModifierCodeSequence"				Name="Treatment Site Modifier Code Sequence"
-(3010,0090) VERS="3"	VR="CS"   VM="1"	Keyword="RoboticBaseLocationIndicator"					Name="Robotic Base Location Indicator"
+(3010,0090) VERS="RET"	VR="CS"   VM="1"	Keyword="RoboticBaseLocationIndicator"					Name="Robotic Base Location Indicator"
 (3010,0091) VERS="3"	VR="SQ"   VM="1"	Keyword="RoboticPathNodeSetCodeSequence"				Name="Robotic Path Node Set Code Sequence"
 (3010,0092) VERS="3"	VR="UL"   VM="1"	Keyword="RoboticNodeIdentifier"							Name="Robotic Node Identifier"
 (3010,0093) VERS="3"	VR="FD"   VM="3"	Keyword="RTTreatmentSourceCoordinates"					Name="RT Treatment Source Coordinates"
@@ -4588,6 +4708,7 @@
 (3010,0098) VERS="3"	VR="SQ"   VM="1"	Keyword="TomotherapeuticControlPointSequence"			Name="Tomotherapeutic Control Point Sequence"
 (3010,0099) VERS="3"	VR="FD"   VM="1-n"	Keyword="TomotherapeuticLeafOpenDurations"				Name="Tomotherapeutic Leaf Open Durations"
 (3010,009A) VERS="3"	VR="FD"   VM="1-n"	Keyword="TomotherapeuticLeafInitialClosedDurations"		Name="Tomotherapeutic Leaf Initial Closed Durations"
+(3010,00A0) VERS="3"	VR="SQ"   VM="1"	Keyword="ConceptualVolumeIdentificationSequence"		Name="Conceptual Volume Identification Sequence"
 (4000,0010) VERS="RET"	VR="LT"   VM="1"	Keyword="Arbitrary"					Name="Arbitrary"
 (4000,4000) VERS="RET"	VR="LT"   VM="1"	Keyword="TextComments"				Name="Text Comments"
 (4008,0040) VERS="RET"	VR="SH"   VM="1"	Keyword="ResultsID"				Name="Results ID"
diff --git a/libsrc/standard/elmdict/other.tpl b/libsrc/standard/elmdict/other.tpl
index cc79f6b..94f740f 100755
--- a/libsrc/standard/elmdict/other.tpl
+++ b/libsrc/standard/elmdict/other.tpl
@@ -2227,12 +2227,14 @@
 (0117,0020) VERS="UCSF" VR="SQ"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="VOILPS"						Name="VOILPS"
 (0117,0022) VERS="UCSF" VR="SQ"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="OMITRegionSequence"			Name="OMIT Region Sequence"
 (0117,0024) VERS="UCSF" VR="SQ"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="QCSequence"					Name="QC Sequence"
+(0117,0026) VERS="UCSF" VR="SQ"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ImageRegistrationSequence"		Name="ImageRegistration Sequence"
 (0117,0030) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="TotalPhases"					Name="Total phases"
 (0117,0031) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="AcquisitionDuration"			Name="Acquisition Duration"
 (0117,0032) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="AcquisitionStartTimes"			Name="Acquisition Start Times"
 (0117,0033) VERS="UCSF" VR="TM"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="InjectionTime"					Name="Injection Time"
 (0117,0034) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="EffectiveAcquisitionDelay"		Name="Effective Acquisition Delay"
 (0117,0035) VERS="UCSF" VR="IS"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="SERTimingIndices"				Name="Signal Enhancement Ratio (SER) Timing Indices"
+(0117,0036) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="FirstPostIndex"				Name="First Post-contrast Phase Index"
 (0117,003a) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="TimingInformationMethod"		Name="Timing Information Method"
 (0117,003b) VERS="UCSF" VR="LT"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="TimingInformationComments"		Name="Timing Information Comments"
 (0117,0041) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="VOILPSROIFlag"					Name="VOILPS ROI Flag"
@@ -2249,8 +2251,40 @@
 (0117,0055) VERS="UCSF" VR="US"   VM="2"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ProjectedROIZRange"			Name="Projected ROI Z Range"
 (0117,0056) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ProjectedROIType"				Name="Projected ROI Type"
 (0117,0057) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ProjectedROILabel"				Name="Projected ROI Label"
+(0117,005a) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ProjectedROILabel"				Name="Projected ROI Label"
+(0117,0070) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegistrationSID"				Name="Registration SID"
+(0117,0071) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegVersion"					Name="Reg Version"
+(0117,0073) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegFixedSeries"				Name="Reg Fixed Series"
+(0117,0074) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegFixedVolumeIndex"			Name="Reg Fixed Volume Index"
+(0117,0076) VERS="UCSF" VR="IS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegMovingVolumeIndex"			Name="Reg Moving Volume Index"
+(0117,0077) VERS="UCSF" VR="IS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegMovingSeries"				Name="Reg Moving Series"
+(0117,007B) VERS="UCSF" VR="LO"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegType"						Name="Reg Type"
+(0117,007C) VERS="UCSF" VR="LT"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegExecutable"					Name="Reg Executable"
+(0117,007D) VERS="UCSF" VR="LT"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegArguments"					Name="Reg Arguments"
+(0117,007E) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegITKVersion"					Name="Reg ITK Version"
+(0117,007F) VERS="UCSF" VR="DT"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegTimeStamp"					Name="Reg Time Stamp"
+(0117,0080) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegElastixVersion"				Name="Reg Elastix Version"
+(0117,0081) VERS="UCSF" VR="LO"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegElstixParams"				Name="Reg Elstix Params"
+(0117,0085) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegFixedDataType"				Name="Reg Fixed Data Type"
+(0117,0086) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegMovingDMIDataType"			Name="Reg Moving DMI Data Type"
+(0117,0087) VERS="UCSF" VR="DS"   VM="2"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegFixedIntScale"				Name="Reg Fixed Int Scale"
+(0117,0088) VERS="UCSF" VR="DS"   VM="2"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegMovingIntScale"				Name="Reg Moving Int Scale"
+(0117,0090) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropSourceOrientation"			Name="Crop Source Orientation"
+(0117,0091) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropTargetOrientation"			Name="Crop Target Orientation"
+(0117,0092) VERS="UCSF" VR="UL"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropSourceNPixels"				Name="Crop Source N Pixels"
+(0117,0093) VERS="UCSF" VR="UL"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropTargetNPixels"				Name="Crop Target N Pixels"
+(0117,0094) VERS="UCSF" VR="FD"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropSourcePixelSize"			Name="Crop Source Pixel Size"
+(0117,0095) VERS="UCSF" VR="FD"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropTargetPixelSize"			Name="Crop Target Pixel Size"
+(0117,0096) VERS="UCSF" VR="FD"   VM="16"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropSourcePixLPSMatrix"		Name="Crop Source Pix LPS Matrix"
+(0117,0097) VERS="UCSF" VR="FD"   VM="16"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropTargetPixLPSMatrix"		Name="Crop Target Pix LPS Matrix"
+(0117,0098) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropLaterality"				Name="Crop Laterality"
+(0117,0099) VERS="UCSF" VR="UL"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropPixelLimitsStart"			Name="Crop Pixel Limits Start"
+(0117,009A) VERS="UCSF" VR="UL"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropPixelLimitsEnd"			Name="Crop Pixel Limits End"
+(0117,009B) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="CropResamplingMethod"			Name="Crop Resampling Method"
 (0117,00a1) VERS="UCSF" VR="US"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="VOIPixelStart"					Name="VOI Pixel Start"
 (0117,00a2) VERS="UCSF" VR="US"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="VOIPixelEnd"					Name="VOI Pixel End"
+(0117,00A3) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="FTVBackgroundMethod"			Name="FTV Background Method"
+(0117,00A4) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="FTVBackgroundThreshold"		Name="FTV Background Threshold"
 (0117,00b0) VERS="UCSF" VR="SQ"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="FTVResultsSequence"			Name="Functional Tumor Volume (FTV) Results Sequence"
 (0117,00b1) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="SERMinimum"					Name="Signal Enhancement Ratio (SER) Minimum"
 (0117,00b2) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="SERMaximum"					Name="Signal Enhancement Ratio (SER) Maximum"
@@ -2264,6 +2298,54 @@
 (0117,00c4) VERS="UCSF" VR="LT"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="QCComment"						Name="QC Comment"
 (0117,00c5) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ProtocolCompliance"			Name="Protocol Compliance"
 (0117,00c6) VERS="UCSF" VR="LO"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ProtocolNonComplianceReasons"	Name="Protocol Non-compliance Reasons"
+(0117,00c7) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ImagesAnalyzable"				Name="Images Analyzable"
+(0117,00c8) VERS="UCSF" VR="LO"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ImagesNonAnalyzableReasons"	Name="Images non-analyzable reasons"
+(0117,00D1) VERS="UCSF" VR="DT"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="MaskSourceSaveDate"			Name="Mask Source Save Date"
+(0117,00D2) VERS="UCSF" VR="CS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="MaskOperations"				Name="Mask Operations"
+(0117,00D3) VERS="UCSF" VR="LO"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="MaskLegend"					Name="Mask Legend"
+(0117,00D4) VERS="UCSF" VR="LO"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="MaskProcessDescriptions"		Name="Mask Process Descriptions"
+(0117,00F1) VERS="UCSF" VR="LT"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="RegTransferText"				Name="Reg Transfer Text"
+
+(0117,0024) VERS="UCSF" VR="SQ"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710XX"	Keyword="QCSequence"					Name="QC Sequence"
+(0117,00c4) VERS="UCSF" VR="LT"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710XX"	Keyword="QCComment"						Name="QC Comment"
+
+(0119,0000) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF MRSC Acquisition PRIVATE CREATOR 011910xx"	Keyword="Version"			Name="Version"
+(0119,0010) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF MRSC Acquisition PRIVATE CREATOR 011910xx"	Keyword="PixelDataType"		Name="Pixel Data Type"
+(0119,0030) VERS="UCSF" VR="DS"   VM="9"	Owner="UCSF MRSC Acquisition PRIVATE CREATOR 011910xx"	Keyword="DirectionCosines"	Name="Direction Cosines"
+(0119,0031) VERS="UCSF" VR="CS"   VM="3"	Owner="UCSF MRSC Acquisition PRIVATE CREATOR 011910xx"	Keyword="PatientOrientation3"	Name="Patient Orientation 3"
+(0119,0050) VERS="UCSF" VR="LO"   VM="1-n"	Owner="UCSF MRSC Acquisition PRIVATE CREATOR 011910xx"	Keyword="VolumeLabels"		Name="Volume Labels"
+
+(0119,0020) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF MRSC Acquisition PRIVATE CREATOR 011911xx"	Keyword="ThresholdingFlag"	Name="Thresholding Flag"
+(0119,0021) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF MRSC Acquisition PRIVATE CREATOR 011911xx"	Keyword="Threshold"			Name="Threshold"
+(0119,0023) VERS="UCSF" VR="OB"   VM="1-n"	Owner="UCSF MRSC Acquisition PRIVATE CREATOR 011911xx"	Keyword="FitMapMask"		Name="Fit Map Mask"
+
+(0119,0000) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="FitMapModuleVersion"	Name="Fit Map Module Version"
+(0119,0002) VERS="UCSF" VR="IS"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="SourceVolumeIndices"	Name="Source Volume Indices"
+(0119,0003) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="ParameterValues"		Name="Parameter Values"
+(0119,0004) VERS="UCSF" VR="AT"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="ParameterTag"			Name="Parameter Tag"
+(0119,0005) VERS="UCSF" VR="UI"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="SourceFileUIDs"		Name="Source File UIDs"
+(0119,0009) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="SMOOTHBoxcarAverageKernel"	Name="SMOOTH Boxcar Average Kernel"
+(0119,000A) VERS="UCSF" VR="LO"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="FitParameterName"		Name="Fit Parameter Name"
+(0119,000C) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="FitICFunction"			Name="Fit IC Function"
+(0119,000D) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="FitFormulaProcedure"	Name="Fit Formula Procedure"
+(0119,000E) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="FittingProgram"		Name="Fitting Program"
+(0119,000F) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="FittingProgramVersion"	Name="Fitting Program Version"
+(0119,0010) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="FitType"				Name="Fit Type"
+(0119,0011) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="SetICFlag"				Name="Set IC Flag"
+(0119,0012) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="InitialConditions"		Name="Initial Conditions"
+(0119,0013) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="FitMapScaleFactors"	Name="Fit Map Scale Factors"
+(0119,0020) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="ThresholdingFlag"		Name="Thresholding Flag"
+(0119,0021) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="Threshold"				Name="Threshold"
+(0119,0023) VERS="UCSF" VR="OB"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="FitMapMask"			Name="Fit Map Mask"
+(0119,0024) VERS="UCSF" VR="OB"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="FitMapPntThreshMap"	Name="Fit Map Pnt Thresh Map"
+(0119,0025) VERS="UCSF" VR="ST"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="PixelMaskCheckString"	Name="Pixel Mask Check String"
+(0119,0026) VERS="UCSF" VR="LO"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="PixelMaskSource"		Name="Pixel Mask Source"
+(0119,0030) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="UpperFitLimit"			Name="Upper Fit Limit"
+(0119,0031) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="LowerFitLimit"			Name="Lower Fit Limit"
+(0119,0040) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="GradientMatrixMethod"	Name="Gradient Matrix Method"
+(0119,0041) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="GradientMatrix"		Name="Gradient Matrix
+(0119,0042) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="IVIMMinimumBSlow"		Name="IVIM Minimum B Slow"
+(0119,0080) VERS="UCSF" VR="SQ"   VM="1"	Owner="UCSF MRSC Fitting PRIVATE CREATOR 011911xx"	Keyword="FitMapSQ"				Name="Fit Map SQ"
 
 #conflict in different statements (TruDR vs. VetPACS) whether owner is "Sound Eklin" or "Sound Technologies", and whether VR for acquisition elements is LO or CS ... assume longer VR, and duplicate all for both owner strings ...
 (f001,0002) VERS="SND" VR="LO"   VM="1"		Owner="Sound Eklin"	Keyword="PatientCategorySize"			Name="Patient Category Size"
diff --git a/libsrc/standard/elmdictie.xml b/libsrc/standard/elmdictie.xml
index c671fdc..66dff7d 100644
--- a/libsrc/standard/elmdictie.xml
+++ b/libsrc/standard/elmdictie.xml
@@ -160,6 +160,7 @@
 	<DataElementIE><Name>PatientSexNeutered</Name><IE>STUDY</IE></DataElementIE>
 	<DataElementIE><Name>ClinicalTrialTimePointID</Name><IE>STUDY</IE></DataElementIE>
 	<DataElementIE><Name>ClinicalTrialTimePointDescription</Name><IE>STUDY</IE></DataElementIE>
+	<DataElementIE><Name>ClinicalTrialTimePointTypeCodeSequence</Name><IE>STUDY</IE></DataElementIE>
 	<DataElementIE><Name>LongitudinalTemporalOffsetFromEvent</Name><IE>STUDY</IE></DataElementIE>
 	<DataElementIE><Name>LongitudinalTemporalEventType</Name><IE>STUDY</IE></DataElementIE>
 	<DataElementIE><Name>ConsentForClinicalTrialUseSequence</Name><IE>STUDY</IE></DataElementIE>
@@ -207,6 +208,7 @@
 	<DataElementIE><Name>DerivationCodeSequence</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>SourceImageSequence</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>SourceInstanceSequence</Name><IE>INSTANCE</IE></DataElementIE>
+	<DataElementIE><Name>AcquisitionUID</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>AcquisitionNumber</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>AcquisitionDate</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>AcquisitionTime</Name><IE>INSTANCE</IE></DataElementIE>
@@ -1000,6 +1002,8 @@
 	<DataElementIE><Name>RecommendedViewingMode</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>BlendingSequence</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>RelativeOpacity</Name><IE>INSTANCE</IE></DataElementIE>
+	<DataElementIE><Name>AdvancedBlendingSequence</Name><IE>INSTANCE</IE></DataElementIE>
+	<DataElementIE><Name>BlendingDisplaySequence</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>NumberOfScreens</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>NominalScreenDefinitionSequence</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>StructuredDisplayBackgroundCIELabValue</Name><IE>INSTANCE</IE></DataElementIE>
diff --git a/libsrc/standard/module/base.tpl b/libsrc/standard/module/base.tpl
index 439ab86..76a11f8 100755
--- a/libsrc/standard/module/base.tpl
+++ b/libsrc/standard/module/base.tpl
@@ -978,6 +978,9 @@ ModuleEnd
 Module="ClinicalTrialStudy"
 	Name="ClinicalTrialTimePointID"					Type="2"
 	Name="ClinicalTrialTimePointDescription"		Type="3"
+	Sequence="ClinicalTrialTimePointTypeCodeSequence"	Type="3"	VM="1-n"
+		InvokeMacro="CodeSequenceMacro"
+	SequenceEnd
 	Name="LongitudinalTemporalOffsetFromEvent"		Type="3"
 	Name="LongitudinalTemporalEventType"			Type="1C"	Condition="LongitudinalTemporalOffsetFromEventIsPresent"	StringDefinedTerms="LongitudinalTemporalEventType"
 	Sequence="ConsentForClinicalTrialUseSequence"	Type="3"	VM="1-n"
@@ -1806,8 +1809,8 @@ Module="CTImage"
 	Name="HighBit"						Type="1"	BinaryEnumValues="BitsAre11To15"
 	Name="RescaleIntercept"				Type="1"
 	Name="RescaleSlope"					Type="1"	NotZeroError=""
-	Name="RescaleType"					Type="1C"	Condition="MultienergyAcquisitionOrRescaleTypeIsPresentAndNotHU"	StringDefinedTerms="RescaleTypeHounsfieldUnits" mbpo="true"
-	Verify="RescaleType"							Condition="RescaleTypeIsPresentAndNotHUAndImageIsOriginalNotLocalizerAndNotMultienergyAcquisition" ThenErrorMessage="If RescaleType is present and not multi-energy acquisition, must be HU for ORIGINAL non-LOCALIZER images"
+	Name="RescaleType"					Type="1C"	Condition="MultienergyAcquisitionOrRescaleTypeIsPresentAndNotHU"	StringDefinedTerms="RescaleTypeCTImage" mbpo="true"
+	Verify="RescaleType"							Condition="RescaleTypeIsPresentAndNotHUAndImageIsOriginalNotLocalizerAndNotMultienergyAcquisition" ThenWarningMessage="If RescaleType is present and not multi-energy acquisition, should be HU for ORIGINAL non-LOCALIZER images"
 	Verify="RescaleType"							Condition="RescaleTypeIsPresentAndIsHUAndImageIsOriginalLocalizerAndNotMultienergyAcquisition"   ThenWarningMessage="If RescaleType is present and not multi-energy acquisition, should not be HU for ORIGINAL LOCALIZER images"
 	Name="KVP"							Type="2"	NotZeroWarning=""
 	Verify="KVP"									Condition="KVPNotEmptyWhenAlsoPresentInMultienergyCTAcquisitionSequence" ThenErrorMessage="Attribute shall be empty within Module <CTImage> when also present in MultienergyCTAcquisitionSequence"
diff --git a/libsrc/standard/module/softcopy.tpl b/libsrc/standard/module/softcopy.tpl
index b376c79..1bd9cf9 100755
--- a/libsrc/standard/module/softcopy.tpl
+++ b/libsrc/standard/module/softcopy.tpl
@@ -240,11 +240,22 @@ Module="AdvancedBlendingPresentationState"
 		Name="SeriesInstanceUID"							Type="1"
 		Sequence="ReferencedImageSequence"					Type="1C"	VM="1-n"	NoCondition=""
 			InvokeMacro="ImageSOPInstanceReferenceMacro"
+			Name="ReferencedOpticalPathIdentifier"			Type="1C"	VM="1"	NoCondition=""
 		SequenceEnd
 		Sequence="ReferencedSpatialRegistrationSequence"	Type="1C"	VM="1"	NoCondition=""	mbpo="true"
 			InvokeMacro="HierarchicalSOPInstanceReferenceMacro"
 		SequenceEnd
 		InvokeMacro="ThresholdSequenceMacro"
+		Sequence="SoftcopyVOILUTSequence"					Type="1C"	VM="1-n"	NoCondition=""
+			Sequence="ReferencedImageSequence"				Type="1C"	VM="1-n"	NoCondition=""
+				InvokeMacro="ImageSOPInstanceReferenceMacro"
+				Name="ReferencedOpticalPathIdentifier"		Type="1C"	VM="1"	NoCondition=""
+			SequenceEnd
+			InvokeMacro="VOILUTMacro"
+		SequenceEnd
+		Sequence="PaletteColorLookupTableSequence"			Type="1C"	VM="1"	NoCondition=""
+			InvokeMacro="PaletteColorLookupTableMacro"
+		SequenceEnd
 		Name="TimeSeriesBlending"							Type="1C"	StringEnumValues="TrueFalseFull"	NoCondition=""	mbpo="true"
 		Name="GeometryForDisplay"							Type="1C"	StringEnumValues="TrueFalseFull"	NoCondition=""	mbpo="true"
 	SequenceEnd
@@ -262,6 +273,7 @@ Module="AdvancedBlendingPresentationStateIDCVOIPaletteOpticalPath"
 		Sequence="ReferencedSpatialRegistrationSequence"	Type="1C"	VM="1"	NoCondition=""	mbpo="true"
 			InvokeMacro="HierarchicalSOPInstanceReferenceMacro"
 		SequenceEnd
+		InvokeMacro="ThresholdSequenceMacro"
 		Sequence="SoftcopyVOILUTSequence"					Type="1C"	VM="1-n"	NoCondition=""
 			Sequence="ReferencedImageSequence"				Type="1C"	VM="1-n"	NoCondition=""
 				InvokeMacro="ImageSOPInstanceReferenceMacro"
@@ -272,7 +284,6 @@ Module="AdvancedBlendingPresentationStateIDCVOIPaletteOpticalPath"
 		Sequence="PaletteColorLookupTableSequence"			Type="1C"	VM="1"	NoCondition=""
 			InvokeMacro="PaletteColorLookupTableMacro"
 		SequenceEnd
-		InvokeMacro="ThresholdSequenceMacro"
 		Name="TimeSeriesBlending"							Type="1C"	StringEnumValues="TrueFalseFull"	NoCondition=""	mbpo="true"
 		Name="GeometryForDisplay"							Type="1C"	StringEnumValues="TrueFalseFull"	NoCondition=""	mbpo="true"
 	SequenceEnd
diff --git a/libsrc/standard/strval/ct.tpl b/libsrc/standard/strval/ct.tpl
index 727b6ab..104651a 100644
--- a/libsrc/standard/strval/ct.tpl
+++ b/libsrc/standard/strval/ct.tpl
@@ -142,6 +142,18 @@ StringValues="RescaleTypeHounsfieldUnits" {
 	HU = Hounsfield Units
 }
 
+StringValues="RescaleTypeCTImage" {
+	OD,
+	HU,
+	US,
+	MGML,
+	Z_EFF,
+	ED,
+	EDW,
+	HU_MOD,
+	PCT
+}
+
 StringValues="MultienergySourceTechnique" {
 	SWITCHING_SOURCE,
 	CONSTANT_SOURCE

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/lib/debug/.build-id/02/bfdc7052b0e2ebca45fd324c8d3d158dac96a7.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/09/0b836a241c17faecd23fa707dc297d7b94c7b2.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/34/3073bb559144309e977de7e5bca93eeda3487a.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/3f/03b5e4bb1aa0488e5033d5fa71521510fafa47.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/55/16308247b8de5ca5bd68c26ac4405bd5a20047.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/62/d0531af38af0356bbd5ab91df809b6c60e984a.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/82/bf3ab90560fdd0715a659526269e02a338326e.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/a3/ff1df262228c82f7ccff3bccf4fe9b8230cf65.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/a6/a6253ccfe5445d7e9a70341699e069b5df07e4.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/a7/d6c59c23b6136cd8f72a66067acd1690cad596.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/b3/19647acbb2fac8d594b5d33ec7d787abe0a984.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/b5/04ac96bef2a9adaa530913f51d006057c35444.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/bd/6b3a9d47815a6238af56b953eda8349254f768.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/bd/e4cefb690e3a0f025b56bab4c55984f8899f63.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/d3/cf79e7e2349024204e0ff16369c5200c49cf59.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/e8/7a7d8c6efec53b3048ca41521eeec6e12bfbe2.debug

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/lib/debug/.build-id/04/17549fe21632a660f09451ee33caca8822aa40.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/1b/a210d94007e2346ffd7fc02c1ba4ac289ca1e7.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/3d/1219ce3dac47ab838b32701e66599ba6b1c3dc.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/7d/0051f8cd9da1c5de0de7b99f9454b54bae72f2.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/7e/a5e573086c33bdea9b0f818be8d1e1e98d7515.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/83/1c54356c822c67376a601e73731d447321f1dd.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/a8/41ae7366d9adbf19880c4c9d57ef084296ff82.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/b0/8534a70a9bab9056ed19ae9244f39f6af5fb61.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/bd/722ee8c037cfe59d5bdfcfd71e2614aca616a2.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/ca/eab631ea7f0bb73c0d00d2f65287fc30a70965.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/d7/d6e27513fd5e3fcd9a345606c7a25bf7a60691.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/dc/87bc05d0a98b6fa8dfd6e8d4ac016a776e3beb.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/ee/409ec4b18829a80af0b86bb161b436d27f27b7.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/f3/081aa7220d68d54c0d9d774854852365c67d72.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/f5/5c89015ce3136dc20997e54ddef506f9bf305e.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/f9/0a8e0c08e74e4ca6b29b32b379f04cd6671bb6.debug

No differences were encountered between the control files of package dicom3tools

Control files of package dicom3tools-dbgsym: lines which differ (wdiff format)

  • Build-Ids: 0417549fe21632a660f09451ee33caca8822aa40 1ba210d94007e2346ffd7fc02c1ba4ac289ca1e7 3d1219ce3dac47ab838b32701e66599ba6b1c3dc 7d0051f8cd9da1c5de0de7b99f9454b54bae72f2 7ea5e573086c33bdea9b0f818be8d1e1e98d7515 831c54356c822c67376a601e73731d447321f1dd a841ae7366d9adbf19880c4c9d57ef084296ff82 b08534a70a9bab9056ed19ae9244f39f6af5fb61 bd722ee8c037cfe59d5bdfcfd71e2614aca616a2 caeab631ea7f0bb73c0d00d2f65287fc30a70965 d7d6e27513fd5e3fcd9a345606c7a25bf7a60691 dc87bc05d0a98b6fa8dfd6e8d4ac016a776e3beb ee409ec4b18829a80af0b86bb161b436d27f27b7 f3081aa7220d68d54c0d9d774854852365c67d72 f55c89015ce3136dc20997e54ddef506f9bf305e f90a8e0c08e74e4ca6b29b32b379f04cd6671bb6 02bfdc7052b0e2ebca45fd324c8d3d158dac96a7 090b836a241c17faecd23fa707dc297d7b94c7b2 343073bb559144309e977de7e5bca93eeda3487a 3f03b5e4bb1aa0488e5033d5fa71521510fafa47 5516308247b8de5ca5bd68c26ac4405bd5a20047 62d0531af38af0356bbd5ab91df809b6c60e984a 82bf3ab90560fdd0715a659526269e02a338326e a3ff1df262228c82f7ccff3bccf4fe9b8230cf65 a6a6253ccfe5445d7e9a70341699e069b5df07e4 a7d6c59c23b6136cd8f72a66067acd1690cad596 b319647acbb2fac8d594b5d33ec7d787abe0a984 b504ac96bef2a9adaa530913f51d006057c35444 bd6b3a9d47815a6238af56b953eda8349254f768 bde4cefb690e3a0f025b56bab4c55984f8899f63 d3cf79e7e2349024204e0ff16369c5200c49cf59 e87a7d8c6efec53b3048ca41521eeec6e12bfbe2

More details

Full run details