[med-svn] [dicom3tools] 01/04: New upstream version 1.00~20171115151618

Gert Wollny gewo at moszumanska.debian.org
Mon Nov 27 19:10:20 UTC 2017


This is an automated email from the git hooks/post-receive script.

gewo pushed a commit to branch master
in repository dicom3tools.

commit 242bbba95af62f18f7668af8716d91e44caff1a0
Author: Gert Wollny <gewo at debian.org>
Date:   Mon Nov 27 18:35:33 2017 +0100

    New upstream version 1.00~20171115151618
---
 CHANGES                             |  86 ++++++
 VERSION                             |   2 +-
 libsrc/include/dctool/ie.h          |   3 +-
 libsrc/src/dctool/attrtypv.cc       |  28 +-
 libsrc/src/dctool/condn.cc          |  73 +++++
 libsrc/src/dctool/ie.cc             |  18 +-
 libsrc/src/generic/platform.cc      |   2 +-
 libsrc/src/generic/version.cc       |   2 +-
 libsrc/standard/condn.tpl           | 548 ++++++++++++++++++++----------------
 libsrc/standard/elmdict/dicom3.tpl  |  97 ++++++-
 libsrc/standard/elmdict/elscint.tpl |   7 +-
 libsrc/standard/elmdict/gems.tpl    |   7 +
 libsrc/standard/elmdict/other.tpl   | 113 ++++++--
 libsrc/standard/elmdict/philips.tpl |   2 +
 libsrc/standard/iodcomp/mr.tpl      |  33 +++
 libsrc/standard/iodcomp/vl.tpl      |   2 +-
 libsrc/standard/module/acqctx.tpl   |   1 +
 libsrc/standard/module/base.tpl     |  25 +-
 libsrc/standard/module/ct.tpl       |   2 +-
 libsrc/standard/module/dx.tpl       |   5 +
 libsrc/standard/module/mr.tpl       |  90 +++++-
 libsrc/standard/module/pet.tpl      |   3 +-
 libsrc/standard/module/rt.tpl       |   3 +
 libsrc/standard/module/softcopy.tpl |   4 +
 libsrc/standard/module/vl.tpl       |   5 +-
 libsrc/standard/sopcl.tpl           |   8 +
 libsrc/standard/strval/base.tpl     |  13 +-
 libsrc/standard/strval/dx.tpl       |   6 +
 libsrc/support/condn.awk            |  17 ++
 libsrc/support/module.awk           |   4 +
 30 files changed, 911 insertions(+), 298 deletions(-)

diff --git a/CHANGES b/CHANGES
index d81b490..1b4321f 100755
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,89 @@
+171115:	libsrc/include/dctool/ie.h,src/dctool/ie.cc,standard/condn.tpl,elmdict/dicom3.tpl,iodcomp,module/mr.tpl: Add Tractography Results Storage SOP Class (Sup 181) as well as missing IE descriptions
+
+170919:	libsrc/standard/module/base.tpl: Clarify condition for Repetition Time (0018,0080) (CP 1696)
+
+170818:	libsrc/standard/elmdict/dicom3.tpl: Flag data elements as retired for Retirement of Radiation Dose Module from Modality Performed Procedure Step (Sup 201)
+
+170918:	libsrc/standard/condn.tpl,,module,strval/base.tpl: Add study longitudinal temporal offset from event for clinical trials (CP 1693)
+
+170917:	libsrc/standard/module/base.tpl: Add Identical Documents Sequence to the Encapsulated Document Module (CP 1629)
+
+170914:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for Add study longitudinal temporal offset from event for clinical trials (CP 1693)
+
+170914:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for Query Key for Anatomic Regions in Study (CP 1690)
+
+170914:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for Add compression pressure to mammography, breast tomosynthesis and projection objects (CP 1679)
+
+170914:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for Progress Parameters in UPS Progress Module (CP 1664)
+
+170914:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for Dose Reference Beam Dose Verification (CP 1658)
+
+170914:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for Consolidate Brachytherapy Applicator Geometry Definitions (CP 1657)
+
+170912:	libsrc/src/dctool/attrtypv.cc: Detect illegal ACR-NEMA chars in DA and TM VR, forbidden since CP 714 (000513)
+
+170811:	libsrc/src/dctool/condn.cc,standard/condn.tpl,support/condn.awk,module.awk:	Only check first item of PerFrameFunctionalGroups when evaluating conditions for mutually exclusive presence of functional groups to improve glacial performance if many frames (000509)
+
+170811:	libsrc/standard/strval/base.tpl: Use empty value flag in list for PatientSex since Type 2 but may be padded with spaces (000510)
+
+170805:	libsrc/standard/condn.tpl,iod/vl.tpl: Handle MPBO for Slide Label Module in WSI (000508)
+
+170717:	libsrc/standard/elmdict/other.tpl: Add observed group 0x0023 Emageon private data elements nested without creator inside group 0x0009 sequence and recognizes "inherited" creator even though different group and block
+
+170709:	libsrc/standard/condn.tpl,module/vl.tpl: Check IlluminationWaveLength value is valid (greater than zero) (000507)
+
+170626: libsrc/standard/elmdict/dicom3.tpl: Add data elements for Protocol Approval (Sup 192)
+
+170621:	libsrc/standard/elmdict/dicom3.tpl,module,strval/base.tpl: Enhance Coding Schemes Table (CP 1603)
+
+170612:	libsrc/standard/condn.tpl,module/base.tpl: Warn when rescale attributes unexpected in legacy MR images, error when window width is less than 1 without exact or sigmoid function, or zero when sigmoid function (000506)
+
+170612:	libsrc/standard/elmdict/gems.tpl: Add VR for private data element observed in GE MR diffusion images
+
+170607:	libsrc/standard/elmdict/dicom3.tpl: Mark Input Availability Flag (0040,4020) as retired, since no longer used in any IOD or service (PS3.6 editorial change)
+
+170508:	libsrc/standard/module/base.tpl,mr.tpl: Add Document Laterality to Encapsulated Document and Raw Data Module (CP 1039)
+
+170421:	libsrc/standard/sopcl.tpl,elmdict/dicom3.tpl: Add Volume Rendering Volumetric Presentation States data elements and SOP Classes (Sup 190 FT)
+
+170418:	libsrc/standard/module/acqctx.tpl,base.tpl: Add Observation DateTime to Acquisition Context (CP 1666)
+
+170418:	libsrc/standard/elmdict/dicom3.tpl,module/rt.tpl: Add Dose Reference UID To Fraction Scheme (CP 1659)
+
+170418:	libsrc/standard/module/rt.tpl: Add Content Date and Time to RT Dose Module (CP 1656)
+
+170418:	libsrc/standard/elmdict/dicom3.tpl,module/base.tpl: Retire Other Patient IDs and Medical Record Locator per Clarify use of Other Patient IDs Sequence with Issuer and related Attributes as Query keys (CP 1649)
+
+170418:	libsrc/standard/condn.tpl,module/ct.tpl,mr.tpl,pet.tpl: Correct requirement for conversion source in legacy converted images and tractography results (CP 1648)
+
+170418:	libsrc/standard/condn.tpl,module/base.tpl: Add Unassigned Shared and Per-Frame Converted Attributes functional groups to Parametric Map (CP 1645)
+
+170418:	libsrc/standard/elmdict/module/vl.tpl: Change type of Signal Noise Ratio for Ophthalmic Axial Measurements Related Information Macro (CP 1643)
+
+170418:	libsrc/standard/elmdict/module/vl.tpl: Change multiplicity for Ophthalmic Axial Length Measurements Segmental Length Sequence (CP 1642)
+
+170417:	libsrc/standard/elmdict/module/softcopy.tpl: Add Tracking ID to Presentation State (CP 1627)
+
+170417:	libsrc/standard/elmdict/module/base.tpl: Fix Type of Dimension Organization UID (within the Dimension Index Sequence) (CP 1604)
+
+170416:	libsrc/standard/elmdict/dicom3.tpl,module,strval/dx.tpl: Add Entrance Dose Derivation data element and to modules (CP 1513)
+
+170405:	libsrc/standard/sopcl.tpl,elmdict/dicom3.tpl: Add Advanced Blending Presentation State Storage data elements and SOP Classes (Sup 189 FT)
+
+170405:	libsrc/standard/sopcl.tpl: Add Patient Radiation Dose Structured Report SOP Classes (Sup 191 FT)
+
+170404:	libsrc/standard/sopcl.tpl,elmdict/dicom3.tpl: Add Ophthalmic Optical Coherence Tomography for Angiographic Imaging data elements and SOP Classes (Sup 197 FT)
+
+170403:	libsrc/standard/elmdict/gems.tpl: Add more observed GE cardiac CT private data elements
+
+170329:	libsrc/standard/elmdict/philips.tpl: Add more observed Philips US private data elements
+
+170325:	libsrc/standard/elmdict/other.tpl: Expand and describe UCSF BIRP MR breast private data elements using dictionary at 'https://wiki.cancerimagingarchive.net/display/Public/I+SPY-1+DCE+MRI+Data+Sharing+DICOM+Dictionary'
+
+170226:	libsrc/standard/elmdict/other.tpl: Add EOS private data elements from conformance statement
+
+170223:	libsrc/standard/elmdict/elscint.tpl,other.tpl: Add encountered ELSCINT and MEDCON private elements
+
 170222:	libsrc/standard/elmdict/other.tpl,strval/base.tpl: Add NUMA R-RDSR private data elements and private coding scheme
 
 170207:	libsrc/standard/condn.tpl,module/base.tpl,iod/base.tpl: Add Palette Color LUT to IOD to finish applying Palette Color in Parametric Map (CP 1584)
diff --git a/VERSION b/VERSION
index 98866a5..58ffbd4 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.00.snapshot.20170222075252
+1.00.snapshot.20171115151618
diff --git a/libsrc/include/dctool/ie.h b/libsrc/include/dctool/ie.h
index be076de..35d431c 100644
--- a/libsrc/include/dctool/ie.h
+++ b/libsrc/include/dctool/ie.h
@@ -31,7 +31,8 @@ enum InformationEntity {
 	ModalityLUTIE,
 	VOILUTIE,
 	ColorPaletteIE,
-	SurfaceIE
+	SurfaceIE,
+	TractographyResultsIE
 };
 
 InformationEntity getInformationEntityFromDescription(const char *d);
diff --git a/libsrc/src/dctool/attrtypv.cc b/libsrc/src/dctool/attrtypv.cc
index e95e6d1..8e365a3 100644
--- a/libsrc/src/dctool/attrtypv.cc
+++ b/libsrc/src/dctool/attrtypv.cc
@@ -311,7 +311,12 @@ DateStringAttribute::validateVR(TextOutputStream& log,SpecificCharacterSetInfo *
 				ok=false;
 			}
 			++p;
-			if (*p == '.' && l == 10) ++p;
+			if (*p == '.' && l == 10) {
+				// CP 714 (000513)
+				writeErrorBadVRCharNL(log,dict,getTag(),getVR(),vn,s,*p);
+				ok=false;
+				++p;
+			}
 			if (*p != '0' &&  *p != '1') {
 				writeErrorBadVRCharNL(log,dict,getTag(),getVR(),vn,s,*p);
 				ok=false;
@@ -322,7 +327,12 @@ DateStringAttribute::validateVR(TextOutputStream& log,SpecificCharacterSetInfo *
 				ok=false;
 			}
 			++p;
-			if (*p == '.' && l == 10) ++p;
+			if (*p == '.' && l == 10) {
+				// CP 714 (000513)
+				writeErrorBadVRCharNL(log,dict,getTag(),getVR(),vn,s,*p);
+				ok=false;
+				++p;
+			}
 			if (*p != '0' &&  *p != '1' &&  *p != '2' &&  *p != '3') {
 				writeErrorBadVRCharNL(log,dict,getTag(),getVR(),vn,s,*p);
 				ok=false;
@@ -838,7 +848,12 @@ TimeStringAttribute::validateVR(TextOutputStream& log,SpecificCharacterSetInfo *
 			}
 			++p;
 			if (*p) {	// Not just HH
-				if (*p == ':') ++p;
+				if (*p == ':') {
+					// CP 714 (000513)
+					writeErrorBadVRCharNL(log,dict,getTag(),getVR(),vn,s,*p);
+					ok=false;
+					++p;
+				}
 				if (*p != '0' &&  *p != '1' &&  *p != '2' &&  *p != '3' &&  *p != '4' &&  *p != '5') {
 					writeErrorBadVRCharNL(log,dict,getTag(),getVR(),vn,s,*p);
 					ok=false;
@@ -850,7 +865,12 @@ TimeStringAttribute::validateVR(TextOutputStream& log,SpecificCharacterSetInfo *
 				}
 				++p;
 				if (*p) {	// Not just HHMM
-					if (*p == ':') ++p;
+					if (*p == ':') {
+						// CP 714 (000513)
+						writeErrorBadVRCharNL(log,dict,getTag(),getVR(),vn,s,*p);
+						ok=false;
+						++p;
+					}
 					if (*p != '0' &&  *p != '1' &&  *p != '2' &&  *p != '3' &&  *p != '4' &&  *p != '5') {
 						writeErrorBadVRCharNL(log,dict,getTag(),getVR(),vn,s,*p);
 						ok=false;
diff --git a/libsrc/src/dctool/condn.cc b/libsrc/src/dctool/condn.cc
index cec29db..6d322c3 100644
--- a/libsrc/src/dctool/condn.cc
+++ b/libsrc/src/dctool/condn.cc
@@ -101,6 +101,44 @@ static bool ElementPresentInPath(AttributeList *list,Tag tag)
 	return false;
 }
 
+static bool ElementPresentInPathFirstItem(AttributeList *list,Tag tag)
+{
+//cerr << "ElementPresentInPathFirstItem:" << endl;
+//cerr << "ElementPresentInPathFirstItem: tag " << hex << tag.getGroup() << "," << tag.getElement() << dec << endl;
+	if ((*list)[tag]) {
+//cerr << "ElementPresentInPathFirstItem: tag present" << endl;
+		return true;
+	}
+	else {
+		AttributeListIterator listi(*list);
+		while (!listi) {
+			Attribute *a=listi();
+			if (a->isSequence()) {
+				SequenceAttribute *aseq=(SequenceAttribute *)a;
+				Assert(aseq);
+				AttributeList **array;
+				int n;
+				if ((n=aseq->getLists(&array)) > 0) {
+//cerr << "ElementPresentInPathFirstItem: found " << n << " items" << endl;
+					{
+//cerr << "ElementPresentInPathFirstItem: item " << dec << 0 << endl;
+						AttributeList *list=array[0];
+						if (ElementPresentInPath(list,tag)) {	// recurses if necessary
+//cerr << "ElementPresentInPathFirstItem: back from ElementPresentInPathFirstItem having found tag" << endl;
+							delete [] array;
+							return true;	
+						}
+					}
+				}
+				delete [] array;
+			}
+			++listi;
+		}
+	}
+//cerr << "ElementPresentInPathFirstItem: did not find tag" << endl;
+	return false;
+}
+
 // Recursively descends from root into items of a top level sequence ... can be very slow :(
 // This doesn't work when called within a macro, which doesn't really have access
 // to the rootlist at all :(
@@ -146,6 +184,41 @@ static bool ElementPresentInPathFromRoot(AttributeList *list,Tag tag,Tag sequenc
 	return false;
 }
 
+
+// Recursively descends from root into first items of a top level sequence.
+// Optimization to use when ElementPresentInPathFromRoot() is too slow :(
+// E.g., for many frames in PerFrameFunctionalGroupsSequence and (?) can assume all items the same :(
+static bool ElementPresentInPathFromRootFirstItem(AttributeList *list,Tag tag,Tag sequencetag)
+{
+//cerr << "ElementPresentInPathFromRootFirstItem:" << endl;
+//cerr << "ElementPresentInPathFromRootFirstItem: sequencetag " << hex << sequencetag.getGroup() << "," << sequencetag.getElement() << dec << endl;
+//cerr << "ElementPresentInPathFromRootFirstItem: tag " << hex << tag.getGroup() << "," << tag.getElement() << dec << endl;
+	Assert(list);
+	Attribute *a=(*list)[sequencetag];
+	if (a && a->isSequence()) {
+//cerr << "ElementPresentInPathFromRootFirstItem: found sequence" << endl;
+		SequenceAttribute *aseq=(SequenceAttribute *)a;
+		Assert(aseq);
+		AttributeList **array;
+		int n;
+		if ((n=aseq->getLists(&array)) > 0) {
+//cerr << "ElementPresentInPathFromRootFirstItem: found " << n << " items" << endl;
+			{
+//cerr << "ElementPresentInPathFromRoot: item " << dec << 0 << endl;
+				AttributeList *list=array[0];
+				if (ElementPresentInPathFirstItem(list,tag)) {	// recurses if necessary
+//cerr << "ElementPresentInPathFromRootFirstItem: back from ElementPresentInPathFirstItem having found tag" << endl;
+					delete [] array;
+					return true;	
+				}
+			}
+		}
+		delete [] array;
+	}
+//cerr << "ElementPresentInPathFromRootFirstItem: did not find tag" << endl;
+	return false;
+}
+
 static bool GroupPresent(AttributeList *list,Tag tag)
 {
 	Uint16 g = tag.getGroup();
diff --git a/libsrc/src/dctool/ie.cc b/libsrc/src/dctool/ie.cc
index 9d1328b..99ff348 100644
--- a/libsrc/src/dctool/ie.cc
+++ b/libsrc/src/dctool/ie.cc
@@ -26,7 +26,14 @@ getInformationEntityFromDescription(const char *d) {
 		else if (strcmp(d,"StructureSet") == 0)				ie = StructureSetIE;
 		else if (strcmp(d,"Study") == 0)					ie = StudyIE;
 		else if (strcmp(d,"TreatmentRecord") == 0)			ie = TreatmentRecordIE;
-		else if (strcmp(d,"Waveform") == 0)					ie = WaveformIE;
+		else if (strcmp(d,"Overlay") == 0)					ie = OverlayIE;
+		else if (strcmp(d,"Curve") == 0)					ie = CurveIE;
+		else if (strcmp(d,"ModalityLUT") == 0)				ie = ModalityLUTIE;
+		else if (strcmp(d,"VOILUT") == 0)					ie = VOILUTIE;
+		else if (strcmp(d,"ColorPalette") == 0)				ie = ColorPaletteIE;
+		else if (strcmp(d,"Surface") == 0)					ie = SurfaceIE;
+		else if (strcmp(d,"TractographyResults") == 0)		ie = TractographyResultsIE;
+		
 	}
 	return ie;
 }
@@ -54,7 +61,14 @@ describeInformationEntity(InformationEntity ie) {
 	else if (ie == StructureSetIE)			d = "StructureSet";
 	else if (ie == StudyIE)					d = "Study";
 	else if (ie == TreatmentRecordIE)		d = "TreatmentRecord";
-	else if (ie == WaveformIE)				d = "Waveform";
+	else if (ie == OverlayIE)				d = "Overlay";
+	else if (ie == CurveIE)					d = "Curve";
+	else if (ie == ModalityLUTIE)			d = "ModalityLUT";
+	else if (ie == VOILUTIE)				d = "VOILUT";
+	else if (ie == ColorPaletteIE)			d = "ColorPalette";
+	else if (ie == SurfaceIE)				d = "Surface";
+	else if (ie == TractographyResultsIE)	d = "TractographyResults";
+	
 	return d;
 }
 
diff --git a/libsrc/src/generic/platform.cc b/libsrc/src/generic/platform.cc
index 996f5e6..57ccead 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 graytoo.local 14.5.0 Darwin Kernel Version 14.5.0: Sun Sep 25 22:07:15 PDT 2016; root:xnu-2782.50.9~1/RELEASE_X86_64 x86_64";
+const char* dicom3tools_platform_string = "Darwin graytoo.local 14.5.0 Darwin Kernel Version 14.5.0: Tue Apr 11 16:12:42 PDT 2017; root:xnu-2782.50.9.2.3~1/RELEASE_X86_64 x86_64";
diff --git a/libsrc/src/generic/version.cc b/libsrc/src/generic/version.cc
index f8b79f9..3dc459c 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.20170222075252";
+const char* dicom3tools_version_string = "1.00.snapshot.20171115151618";
diff --git a/libsrc/standard/condn.tpl b/libsrc/standard/condn.tpl
index b8406da..5186196 100755
--- a/libsrc/standard/condn.tpl
+++ b/libsrc/standard/condn.tpl
@@ -1,6 +1,10 @@
 # Conditions to detect Composite IOD presence ...
 #
 
+Condition="TractographyResultsInstance"
+	Element="SOPClassUID"		StringConstantFromRootAttribute="TractographyResultsStorageSOPClassUID"
+ConditionEnd
+
 Condition="ParametricMapInstance"
 	Element="SOPClassUID"		StringConstantFromRootAttribute="ParametricMapStorageSOPClassUID"
 ConditionEnd
@@ -777,7 +781,7 @@ Condition="AcquisitionContextItemIsPersonName"
 ConditionEnd
 
 Condition="AcquisitionContextItemIsTextValue"
-	Element="ValueType"			Operator="Or"	StringValue="TEXT"
+	Element="ValueType"						StringValue="TEXT"
 	(
 		Element="Date"										Modifier="Not" ElementPresent=""
 		Element="Time"						Operator="And"	Modifier="Not" ElementPresent=""
@@ -951,7 +955,7 @@ Condition="PatientOrientationRequired"
 		Element="SOPClassUID"				StringConstantFromRootAttribute="SegmentationStorageSOPClassUID"
 		(
 			Element="PlaneOrientationSequence"					ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-			Element="PlaneOrientationSequence"	Operator="Or"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+			Element="PlaneOrientationSequence"	Operator="Or"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		) Operator="And"
 	) Operator="And" Modifier="Not"
 ConditionEnd
@@ -993,6 +997,22 @@ Condition="ModalityLUTSequenceNotPresent"
 	Element="ModalityLUTSequence"		Modifier="Not" ElementPresent=""
 ConditionEnd
 
+Condition="RescaleSlopePresentAndNotIdentity"
+	Element="RescaleSlope"			ElementPresent=""
+	(
+		Element="RescaleIntercept"					BinaryValue="!= 0"
+		Element="RescaleSlope"		Operator="Or"	BinaryValue="!= 1"
+	) Operator="And"
+ConditionEnd
+
+Condition="RescaleInterceptPresentAndNotIdentity"
+	Element="RescaleIntercept"		ElementPresent=""
+	(
+		Element="RescaleIntercept"					BinaryValue="!= 0"
+		Element="RescaleSlope"		Operator="Or"	BinaryValue="!= 1"
+	) Operator="And"
+ConditionEnd
+
 Condition="RescaleInterceptPresent"
 	Element="RescaleIntercept"		ElementPresent=""
 ConditionEnd
@@ -2720,7 +2740,7 @@ Condition="ReferencedImageSequenceIsPresent"
 ConditionEnd
 
 Condition="ReferencedImageSequenceIsPresentInFunctionalGroups"
-	Element="ReferencedImageSequence"					ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ReferencedImageSequence"					ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="ReferencedImageSequence"	Operator="Or"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -2729,7 +2749,7 @@ Condition="SourceImageSequenceIsPresent"
 ConditionEnd
 
 Condition="SourceImageSequenceIsPresentInFunctionalGroups"
-	Element="SourceImageSequence"						ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="SourceImageSequence"						ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="SourceImageSequence"		Operator="Or"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -2798,17 +2818,17 @@ ConditionEnd
 
 Condition="DerivationImageFunctionalGroupPresent"
 	Element="DerivationImageSequence"			ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="DerivationImageSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="DerivationImageSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="DerivationImageFunctionalGroupNotPresent"
 	Element="DerivationImageSequence"			Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="DerivationImageSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="DerivationImageSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="DerivationImageFunctionalGroupNotPresentOrFrameOfReferenceUIDPresent"
 	Element="DerivationImageSequence"			Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="DerivationImageSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="DerivationImageSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="FrameOfReferenceUID"				Operator="Or" ElementPresent=""
 ConditionEnd
 
@@ -2817,7 +2837,7 @@ Condition="RadiopharmaceuticalUsageSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="RadiopharmaceuticalUsageSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="RadiopharmaceuticalUsageSequence"	Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RadiopharmaceuticalUsageSequence"	Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="SegmentIdentificationSequenceNotInSharedFunctionalGroupSequence"
@@ -2825,15 +2845,15 @@ Condition="SegmentIdentificationSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="SegmentIdentificationSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="SegmentIdentificationSequence"		Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="SegmentIdentificationSequence"		Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PixelMeasuresOrPlanePositionOrPlaneOrientationSequenceIsPresent"
-	Element="PixelMeasuresSequence"						  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelMeasuresSequence"						  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PixelMeasuresSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -2844,9 +2864,9 @@ ConditionEnd
 Condition="PixelMeasuresSequenceNotInSharedFunctionalGroupSequenceAndDerivationImageMacroNotPresentInEitherMBPO"
 	Element="PixelMeasuresSequence"				Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	(
-		Element="PixelMeasuresSequence"				ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PixelMeasuresSequence"				ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		(
-			Element="DerivationImageSequence"					  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+			Element="DerivationImageSequence"					  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 			Element="DerivationImageSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		) Operator="Or" Modifier="Not"
 	) Operator="And"
@@ -2855,35 +2875,35 @@ ConditionEnd
 Condition="PixelMeasuresSequenceNotInSharedFunctionalGroupSequenceAndPlanePositionSequenceOrPlaneOrientationSequencePresent"
 	Element="PixelMeasuresSequence"				Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	(
-		Element="PlanePositionSequence"						  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PlanePositionSequence"						  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	) Operator="And"
 ConditionEnd
 
 
 Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="PixelMeasuresSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelMeasuresSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequenceAndDerivationImageMacroNotPresentInEitherMBPO"
-	Element="PixelMeasuresSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelMeasuresSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		Element="PixelMeasuresSequence"				ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		(
-			Element="DerivationImageSequence"					  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+			Element="DerivationImageSequence"					  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 			Element="DerivationImageSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		) Operator="Or" Modifier="Not"
 	) Operator="And"
 ConditionEnd
 
 Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequenceAndPlanePositionSequenceOrPlaneOrientationSequencePresent"
-	Element="PixelMeasuresSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelMeasuresSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
-		Element="PlanePositionSequence"						  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PlanePositionSequence"						  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	) Operator="And"
 ConditionEnd
@@ -2896,9 +2916,9 @@ ConditionEnd
 Condition="PlanePositionSequenceNotInSharedFunctionalGroupSequenceAndDerivationImageMacroNotPresentInEitherMBPO"
 	Element="PlanePositionSequence"				Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	(
-		Element="PlanePositionSequence"				ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PlanePositionSequence"				ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		(
-			Element="DerivationImageSequence"					  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+			Element="DerivationImageSequence"					  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 			Element="DerivationImageSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		) Operator="Or" Modifier="Not"
 	) Operator="And"
@@ -2907,34 +2927,34 @@ ConditionEnd
 Condition="PlanePositionSequenceNotInSharedFunctionalGroupSequenceAndPixelMeasuresSequenceOrPlaneOrientationSequencePresent"
 	Element="PlanePositionSequence"				Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	(
-		Element="PixelMeasuresSequence"						  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PixelMeasuresSequence"						  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PixelMeasuresSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	) Operator="And"
 ConditionEnd
 
 Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="PlanePositionSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlanePositionSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequenceAndDerivationImageMacroNotPresentInEitherMBPO"
-	Element="PlanePositionSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlanePositionSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		Element="PlanePositionSequence"				ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		(
-			Element="DerivationImageSequence"					  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+			Element="DerivationImageSequence"					  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 			Element="DerivationImageSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		) Operator="Or" Modifier="Not"
 	) Operator="And"
 ConditionEnd
 
 Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequenceAndPixelMeasuresSequenceOrPlaneOrientationSequencePresent"
-	Element="PlanePositionSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlanePositionSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
-		Element="PixelMeasuresSequence"						  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PixelMeasuresSequence"						  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PixelMeasuresSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PlaneOrientationSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	) Operator="And"
 ConditionEnd
@@ -2948,9 +2968,9 @@ ConditionEnd
 Condition="PlaneOrientationSequenceNotInSharedFunctionalGroupSequenceAndDerivationImageMacroNotPresentInEitherMBPO"
 	Element="PlaneOrientationSequence"			Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	(
-		Element="PlaneOrientationSequence"				ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PlaneOrientationSequence"				ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		(
-			Element="DerivationImageSequence"					  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+			Element="DerivationImageSequence"					  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 			Element="DerivationImageSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		) Operator="Or" Modifier="Not"
 	) Operator="And"
@@ -2959,34 +2979,34 @@ ConditionEnd
 Condition="PlaneOrientationSequenceNotInSharedFunctionalGroupSequenceAndPixelMeasuresSequenceOrPlanePositionSequencePresent"
 	Element="PlaneOrientationSequence"			Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	(
-		Element="PixelMeasuresSequence"						  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PixelMeasuresSequence"						  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PixelMeasuresSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-		Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	) Operator="And"
 ConditionEnd
 
 Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="PlaneOrientationSequence"			Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlaneOrientationSequence"			Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequenceAndDerivationImageMacroNotPresentInEitherMBPO"
-	Element="PlaneOrientationSequence"			Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlaneOrientationSequence"			Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		Element="PlaneOrientationSequence"				ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		(
-			Element="DerivationImageSequence"					  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+			Element="DerivationImageSequence"					  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 			Element="DerivationImageSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		) Operator="Or" Modifier="Not"
 	) Operator="And"
 ConditionEnd
 
 Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequenceAndPixelMeasuresSequenceOrPlanePositionSequencePresent"
-	Element="PlaneOrientationSequence"			Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlaneOrientationSequence"			Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
-		Element="PixelMeasuresSequence"						  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PixelMeasuresSequence"						  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PixelMeasuresSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-		Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	) Operator="And"
 ConditionEnd
@@ -2994,24 +3014,24 @@ ConditionEnd
 Condition="DerivationImageSequenceNotInSharedFunctionalGroupSequenceAndPixelMeasuresPlanePositionPlaneOrientationNotPresentInEitherMBPO"
 	Element="DerivationImageSequence"			Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	(
-		Element="DerivationImageSequence"				ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="DerivationImageSequence"				ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		(
-			Element="PixelMeasuresSequence"						  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+			Element="PixelMeasuresSequence"						  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 			Element="PixelMeasuresSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-			Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+			Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 			Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		) Operator="Or" Modifier="Not"
 	) Operator="And"
 ConditionEnd
 
 Condition="DerivationImageSequenceNotInPerFrameFunctionalGroupSequenceAndPixelMeasuresPlanePositionPlaneOrientationNotPresentInEitherMBPO"
-	Element="DerivationImageSequence"			Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="DerivationImageSequence"			Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		Element="DerivationImageSequence"				ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		(
-			Element="PixelMeasuresSequence"						  ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+			Element="PixelMeasuresSequence"						  ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 			Element="PixelMeasuresSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-			Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+			Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 			Element="PlanePositionSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 		) Operator="Or" Modifier="Not"
 	) Operator="And"
@@ -3020,7 +3040,7 @@ ConditionEnd
 
 Condition="FrameAnatomyMacroOKInPerFrameFunctionalGroupSequence"
 	Element="FrameAnatomySequence"				Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="FrameAnatomySequence"				Operator="And" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameAnatomySequence"				Operator="And" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FrameAnatomySequenceNotInSharedFunctionalGroupSequence"
@@ -3028,12 +3048,12 @@ Condition="FrameAnatomySequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="FrameAnatomyMacroOKInSharedFunctionalGroupSequence"
-	Element="FrameAnatomySequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameAnatomySequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="FrameAnatomySequence"				Operator="And" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FrameAnatomySequenceNotInPerFrameFunctionalGroupSequence"
-	Element="FrameAnatomySequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameAnatomySequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PixelValueTransformationSequenceNotInSharedFunctionalGroupSequence"
@@ -3046,11 +3066,11 @@ Condition="PixelValueTransformationSequenceNotInSharedFunctionalGroupSequenceAnd
 ConditionEnd
 
 Condition="PixelValueTransformationSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="PixelValueTransformationSequence"		Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelValueTransformationSequence"		Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PixelValueTransformationSequenceNotInPerFrameFunctionalGroupSequenceAndPhotometricInterpretationIsMonochrome2"
-	Element="PixelValueTransformationSequence"		Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelValueTransformationSequence"		Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PhotometricInterpretation"				Operator="And" StringValueFromRootAttribute="MONOCHROME2"
 ConditionEnd
 
@@ -3059,7 +3079,7 @@ Condition="MRImageFrameTypeSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="MRImageFrameTypeSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="MRImageFrameTypeSequence"			Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRImageFrameTypeSequence"			Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="MRSpectroscopyFrameTypeSequenceNotInSharedFunctionalGroupSequence"
@@ -3067,7 +3087,7 @@ Condition="MRSpectroscopyFrameTypeSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="MRSpectroscopyFrameTypeSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="MRSpectroscopyFrameTypeSequence"			Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRSpectroscopyFrameTypeSequence"			Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PETFrameTypeSequenceNotInSharedFunctionalGroupSequence"
@@ -3075,7 +3095,7 @@ Condition="PETFrameTypeSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="PETFrameTypeSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="PETFrameTypeSequence"			Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETFrameTypeSequence"			Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 # more specific conditions for particular macros that have to also be only in one or the other functional groups sequences ...
@@ -3084,7 +3104,7 @@ Condition="NeedCardiacSynchronizationMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="CardiacSynchronizationTechnique"			Operator="And" ElementPresentInRoot=""
 	Element="CardiacSynchronizationTechnique"			Operator="And" Modifier="Not" StringValueFromRootAttribute="NONE"
-	Element="CardiacSynchronizationSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CardiacSynchronizationSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CardiacSynchronizationSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -3093,14 +3113,14 @@ Condition="NeedCardiacSynchronizationMacroInPerFrameFunctionalGroupSequence"
 	Element="CardiacSynchronizationTechnique"			Operator="And" ElementPresentInRoot=""
 	Element="CardiacSynchronizationTechnique"			Operator="And" Modifier="Not" StringValueFromRootAttribute="NONE"
 	Element="CardiacSynchronizationSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CardiacSynchronizationSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CardiacSynchronizationSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
 Condition="NeedCardiacSynchronizationMacroInSharedFunctionalGroupSequenceRegardlessOfImageType"
 	Element="CardiacSynchronizationTechnique"			ElementPresentInRoot=""
 	Element="CardiacSynchronizationTechnique"			Operator="And" Modifier="Not" StringValueFromRootAttribute="NONE"
-	Element="CardiacSynchronizationSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CardiacSynchronizationSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CardiacSynchronizationSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -3108,7 +3128,7 @@ Condition="NeedCardiacSynchronizationMacroInPerFrameFunctionalGroupSequenceRegar
 	Element="CardiacSynchronizationTechnique"			ElementPresentInRoot=""
 	Element="CardiacSynchronizationTechnique"			Operator="And" Modifier="Not" StringValueFromRootAttribute="NONE"
 	Element="CardiacSynchronizationSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CardiacSynchronizationSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CardiacSynchronizationSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
@@ -3118,7 +3138,7 @@ Condition="NeedRespiratorySynchronizationMacroInSharedFunctionalGroupSequence"
 	Element="RespiratoryMotionCompensationTechnique"	Operator="And" Modifier="Not" StringValueFromRootAttribute="NONE"
 	Element="RespiratoryMotionCompensationTechnique"	Operator="And" Modifier="Not" StringValueFromRootAttribute="REALTIME"
 	Element="RespiratoryMotionCompensationTechnique"	Operator="And" Modifier="Not" StringValueFromRootAttribute="BREATH_HOLD"
-	Element="RespiratorySynchronizationSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RespiratorySynchronizationSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="RespiratorySynchronizationSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -3129,7 +3149,7 @@ Condition="NeedRespiratorySynchronizationMacroInPerFrameFunctionalGroupSequence"
 	Element="RespiratoryMotionCompensationTechnique"	Operator="And" Modifier="Not" StringValueFromRootAttribute="REALTIME"
 	Element="RespiratoryMotionCompensationTechnique"	Operator="And" Modifier="Not" StringValueFromRootAttribute="BREATH_HOLD"
 	Element="RespiratorySynchronizationSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="RespiratorySynchronizationSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RespiratorySynchronizationSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
@@ -3138,7 +3158,7 @@ Condition="NeedRespiratorySynchronizationMacroInSharedFunctionalGroupSequenceReg
 	Element="RespiratoryMotionCompensationTechnique"	Operator="And" Modifier="Not" StringValueFromRootAttribute="NONE"
 	Element="RespiratoryMotionCompensationTechnique"	Operator="And" Modifier="Not" StringValueFromRootAttribute="REALTIME"
 	Element="RespiratoryMotionCompensationTechnique"	Operator="And" Modifier="Not" StringValueFromRootAttribute="BREATH_HOLD"
-	Element="RespiratorySynchronizationSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RespiratorySynchronizationSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="RespiratorySynchronizationSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -3148,12 +3168,12 @@ Condition="NeedRespiratorySynchronizationMacroInPerFrameFunctionalGroupSequenceR
 	Element="RespiratoryMotionCompensationTechnique"	Operator="And" Modifier="Not" StringValueFromRootAttribute="REALTIME"
 	Element="RespiratoryMotionCompensationTechnique"	Operator="And" Modifier="Not" StringValueFromRootAttribute="BREATH_HOLD"
 	Element="RespiratorySynchronizationSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="RespiratorySynchronizationSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RespiratorySynchronizationSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
 Condition="NeedPatientPhysiologicalStateMacroInSharedFunctionalGroupSequence"
-	Element="PatientPhysiologicalStateSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PatientPhysiologicalStateSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		Element="ImageType"									ValueSelector="2" StringValueFromRootAttribute="REST"
 		Element="ImageType"									Operator="Or" ValueSelector="2" StringValueFromRootAttribute="STRESS"
@@ -3167,25 +3187,25 @@ Condition="NeedPatientPhysiologicalStateMacroInPerFrameFunctionalGroupSequence"
 		Element="ImageType"									ValueSelector="2" StringValueFromRootAttribute="REST"
 		Element="ImageType"									Operator="Or" ValueSelector="2" StringValueFromRootAttribute="STRESS"
 	) Operator="And"
-	Element="PatientPhysiologicalStateSequence"				Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PatientPhysiologicalStateSequence"				Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRTimingAndRelatedParametersMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="MRTimingAndRelatedParametersSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRTimingAndRelatedParametersSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRTimingAndRelatedParametersSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRTimingAndRelatedParametersMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="MRTimingAndRelatedParametersSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRTimingAndRelatedParametersSequence"	Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRTimingAndRelatedParametersSequence"	Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRFOVGeometryMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="GeometryOfKSpaceTraversal"		Operator="And" StringValueFromRootAttribute="RECTILINEAR"
-	Element="MRFOVGeometrySequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRFOVGeometrySequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRFOVGeometrySequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -3193,13 +3213,13 @@ Condition="NeedMRFOVGeometryMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="GeometryOfKSpaceTraversal"		Operator="And" StringValueFromRootAttribute="RECTILINEAR"
 	Element="MRFOVGeometrySequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRFOVGeometrySequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRFOVGeometrySequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRSpectroscopyFOVGeometryMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="GeometryOfKSpaceTraversal"		Operator="And" StringValueFromRootAttribute="RECTILINEAR"
-	Element="MRSpectroscopyFOVGeometrySequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRSpectroscopyFOVGeometrySequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRSpectroscopyFOVGeometrySequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -3207,73 +3227,73 @@ Condition="NeedMRSpectroscopyFOVGeometryMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="GeometryOfKSpaceTraversal"		Operator="And" StringValueFromRootAttribute="RECTILINEAR"
 	Element="MRSpectroscopyFOVGeometrySequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRSpectroscopyFOVGeometrySequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRSpectroscopyFOVGeometrySequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMREchoMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="MREchoSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MREchoSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MREchoSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMREchoMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="MREchoSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MREchoSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MREchoSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRModifierMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="MRModifierSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRModifierSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRModifierSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRModifierMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="MRModifierSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRModifierSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRModifierSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRImagingModifierMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="MRImagingModifierSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRImagingModifierSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRImagingModifierSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRImagingModifierMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="MRImagingModifierSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRImagingModifierSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRImagingModifierSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRReceiveCoilMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="MRReceiveCoilSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRReceiveCoilSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRReceiveCoilSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRReceiveCoilMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="MRReceiveCoilSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRReceiveCoilSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRReceiveCoilSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRTransmitCoilMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="MRTransmitCoilSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRTransmitCoilSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRTransmitCoilSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRTransmitCoilMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="MRTransmitCoilSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRTransmitCoilSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRTransmitCoilSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRDiffusionMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="AcquisitionContrast"			Operator="And" StringValueFromRootAttribute="DIFFUSION"
-	Element="MRDiffusionSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRDiffusionSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRDiffusionSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -3281,13 +3301,13 @@ Condition="NeedMRDiffusionMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="AcquisitionContrast"			Operator="And" StringValueFromRootAttribute="DIFFUSION"
 	Element="MRDiffusionSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRDiffusionSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRDiffusionSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRSpatialSaturationMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="SpatialPresaturation"					Operator="And" StringValueFromRootAttribute="SLAB"
-	Element="MRSpatialSaturationSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRSpatialSaturationSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRSpatialSaturationSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -3295,37 +3315,37 @@ Condition="NeedMRSpatialSaturationMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="SpatialPresaturation"					Operator="And" StringValueFromRootAttribute="SLAB"
 	Element="MRSpatialSaturationSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRSpatialSaturationSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRSpatialSaturationSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRAveragesMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="MRAveragesSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRAveragesSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRAveragesSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRAveragesMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="MRAveragesSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRAveragesSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRAveragesSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRMetaboliteMapMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"					       ValueSelector="2" StringValueFromRootAttribute="METABOLITE_MAP"
-	Element="MRMetaboliteMapSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRMetaboliteMapSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRMetaboliteMapSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRMetaboliteMapMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"					       ValueSelector="2" StringValueFromRootAttribute="METABOLITE_MAP"
 	Element="MRMetaboliteMapSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRMetaboliteMapSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRMetaboliteMapSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRVelocityEncodingMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="PhaseContrast"				Operator="And" StringValueFromRootAttribute="YES"
-	Element="MRVelocityEncodingSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRVelocityEncodingSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRVelocityEncodingSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -3333,19 +3353,19 @@ Condition="NeedMRVelocityEncodingMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="PhaseContrast"				Operator="And" StringValueFromRootAttribute="YES"
 	Element="MRVelocityEncodingSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRVelocityEncodingSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRVelocityEncodingSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRArterialSpinLabelingMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="2" StringValueFromRootAttribute="ASL"
-	Element="MRArterialSpinLabelingSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRArterialSpinLabelingSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="MRArterialSpinLabelingSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedMRArterialSpinLabelingMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="2" StringValueFromRootAttribute="ASL"
 	Element="MRArterialSpinLabelingSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="MRArterialSpinLabelingSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="MRArterialSpinLabelingSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PhaseContrastIsYes"
@@ -3354,18 +3374,18 @@ ConditionEnd
 
 Condition="NeedPETFrameAcquisitionMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
-	Element="PETFrameAcquisitionSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETFrameAcquisitionSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PETFrameAcquisitionSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPETFrameAcquisitionMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
 	Element="PETFrameAcquisitionSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PETFrameAcquisitionSequence"	Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETFrameAcquisitionSequence"	Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPETDetectorMotionDetailsMacroInSharedFunctionalGroupSequence"
-	Element="PETDetectorMotionDetailsSequence"	Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETDetectorMotionDetailsSequence"	Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		Element="ImageType"						ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
 		Element="TypeOfDetectorMotion"			Operator="And" Modifier="Not" StringValueFromRootAttribute="STATIONARY"
@@ -3379,47 +3399,47 @@ Condition="NeedPETDetectorMotionDetailsMacroInPerFrameFunctionalGroupSequence"
 		Element="ImageType"						ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
 		Element="TypeOfDetectorMotion"			Operator="And" Modifier="Not" StringValueFromRootAttribute="STATIONARY"
 	) Operator="And"
-	Element="PETDetectorMotionDetailsSequence"	Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETDetectorMotionDetailsSequence"	Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPETPositionMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
-	Element="PETPositionSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETPositionSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PETPositionSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPETPositionMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
 	Element="PETPositionSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PETPositionSequence"	Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETPositionSequence"	Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPETFrameCorrectionFactorsMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
-	Element="PETFrameCorrectionFactorsSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETFrameCorrectionFactorsSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PETFrameCorrectionFactorsSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPETFrameCorrectionFactorsMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
 	Element="PETFrameCorrectionFactorsSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PETFrameCorrectionFactorsSequence"	Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETFrameCorrectionFactorsSequence"	Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPETReconstructionMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
-	Element="PETReconstructionSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETReconstructionSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PETReconstructionSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPETReconstructionMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
 	Element="PETReconstructionSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PETReconstructionSequence"	Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETReconstructionSequence"	Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPETTableDynamicsMacroInSharedFunctionalGroupSequence"
-	Element="PETTableDynamicsSequence"	Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETTableDynamicsSequence"	Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		Element="ImageType"				ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
 		Element="TableMotion"			Operator="And" StringValueFromRootAttribute="DYNAMIC"
@@ -3433,7 +3453,7 @@ Condition="NeedPETTableDynamicsMacroInPerFrameFunctionalGroupSequence"
 		Element="ImageType"				ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
 		Element="TableMotion"			Operator="And" StringValueFromRootAttribute="DYNAMIC"
 	) Operator="And"
-	Element="PETTableDynamicsSequence"	Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PETTableDynamicsSequence"	Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="LossyImageCompressionIs01"
@@ -3504,14 +3524,14 @@ ConditionEnd
 
 Condition="NeedContrastBolusUsageMacroInSharedFunctionalGroupSequence"
 	Element="ContrastBolusAgentSequence"		ElementPresentInRoot=""
-	Element="ContrastBolusUsageSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ContrastBolusUsageSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="ContrastBolusUsageSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedContrastBolusUsageMacroInPerFrameFunctionalGroupSequence"
 	Element="ContrastBolusAgentSequence"		ElementPresentInRoot=""
 	Element="ContrastBolusUsageSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="ContrastBolusUsageSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ContrastBolusUsageSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="ParametricMapFrameTypeSequenceNotInSharedFunctionalGroupSequence"
@@ -3519,7 +3539,7 @@ Condition="ParametricMapFrameTypeSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="ParametricMapFrameTypeSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="ParametricMapFrameTypeSequence"		Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ParametricMapFrameTypeSequence"		Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="CTImageFrameTypeSequenceNotInSharedFunctionalGroupSequence"
@@ -3527,96 +3547,96 @@ Condition="CTImageFrameTypeSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="CTImageFrameTypeSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="CTImageFrameTypeSequence"		Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTImageFrameTypeSequence"		Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTAcquisitionTypeMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="CTAcquisitionTypeSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTAcquisitionTypeSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CTAcquisitionTypeSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTAcquisitionTypeMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="CTAcquisitionTypeSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CTAcquisitionTypeSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTAcquisitionTypeSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTAcquisitionDetailsMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="CTAcquisitionDetailsSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTAcquisitionDetailsSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CTAcquisitionDetailsSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTAcquisitionDetailsMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="CTAcquisitionDetailsSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CTAcquisitionDetailsSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTAcquisitionDetailsSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTTableDynamicsMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="CTTableDynamicsSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTTableDynamicsSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CTTableDynamicsSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTTableDynamicsMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="CTTableDynamicsSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CTTableDynamicsSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTTableDynamicsSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTPositionMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="CTPositionSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTPositionSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CTPositionSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTPositionMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="CTPositionSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CTPositionSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTPositionSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTGeometryMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="CTGeometrySequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTGeometrySequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CTGeometrySequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTGeometryMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="CTGeometrySequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CTGeometrySequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTGeometrySequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTReconstructionMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="CTReconstructionSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTReconstructionSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CTReconstructionSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTReconstructionMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="CTReconstructionSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CTReconstructionSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTReconstructionSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTExposureMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="CTExposureSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTExposureSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CTExposureSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTExposureMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="CTExposureSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CTExposureSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTExposureSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedCTXRayDetailsMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
-	Element="CTXRayDetailsSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTXRayDetailsSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CTXRayDetailsSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -3624,17 +3644,17 @@ Condition="NeedCTXRayDetailsMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED"
 	Element="AcquisitionType"			Operator="And" Modifier="Not" StringValueFromRootAttribute="CONSTANT_ANGLE"
 	Element="CTXRayDetailsSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CTXRayDetailsSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTXRayDetailsSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="CTAdditionalXRaySourceMacroInSharedFunctionalGroupSequence"
-	Element="CTAdditionalXRaySourceSequence"		Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTAdditionalXRaySourceSequence"		Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CTAdditionalXRaySourceSequence"		Operator="And" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="CTAdditionalXRaySourceMacroInPerFrameFunctionalGroupSequence"
 	Element="CTAdditionalXRaySourceSequence"		Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CTAdditionalXRaySourceSequence"		Operator="And" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CTAdditionalXRaySourceSequence"		Operator="And" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="AcquisitionTypeConstantAngle"
@@ -4357,70 +4377,70 @@ Condition="ObserverTypeIsDevice"
 ConditionEnd
 
 Condition="PlanePositionSequenceOKInSharedFunctionalGroupSequence"
-	Element="PlanePositionSequence"					Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlanePositionSequence"					Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PlanePositionSequence"					Operator="And" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PlanePositionSequenceOKInPerFrameFunctionalGroupSequence"
 	Element="PlanePositionSequence"					Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PlanePositionSequence"					Operator="And" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlanePositionSequence"					Operator="And" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
 Condition="PlaneOrientationSequenceOKInSharedFunctionalGroupSequence"
-	Element="PlaneOrientationSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlaneOrientationSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PlaneOrientationSequence"				Operator="And" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PlaneOrientationSequenceOKInPerFrameFunctionalGroupSequence"
 	Element="PlaneOrientationSequence"				Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PlaneOrientationSequence"				Operator="And" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlaneOrientationSequence"				Operator="And" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
 Condition="PixelValueTransformationSequenceOKInSharedFunctionalGroupSequence"
-	Element="PixelValueTransformationSequence"		Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelValueTransformationSequence"		Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PixelValueTransformationSequence"		Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PixelValueTransformationSequenceOKInPerFrameFunctionalGroupSequence"
 	Element="PixelValueTransformationSequence"		Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PixelValueTransformationSequence"		Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelValueTransformationSequence"		Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FrameVOILUTMacroOKInSharedFunctionalGroupSequence"
-	Element="FrameVOILUTSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameVOILUTSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="FrameVOILUTSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FrameVOILUTMacroOKInSharedFunctionalGroupSequenceAndPhotometricInterpretationIsMonochrome2"
-	Element="FrameVOILUTSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameVOILUTSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="FrameVOILUTSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	Element="PhotometricInterpretation"			Operator="And"	StringValueFromRootAttribute="MONOCHROME2"
 ConditionEnd
 
 Condition="FrameVOILUTMacroOKInPerFrameFunctionalGroupSequence"
 	Element="FrameVOILUTSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="FrameVOILUTSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameVOILUTSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FrameVOILUTMacroOKInPerFrameFunctionalGroupSequenceAndPhotometricInterpretationIsMonochrome2"
 	Element="FrameVOILUTSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="FrameVOILUTSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameVOILUTSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PhotometricInterpretation"			Operator="And"	StringValueFromRootAttribute="MONOCHROME2"
 ConditionEnd
 
 Condition="RealWorldValueMappingSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="RealWorldValueMappingSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RealWorldValueMappingSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="RealWorldValueMappingMacroOKInSharedFunctionalGroupSequence"
-	Element="RealWorldValueMappingSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RealWorldValueMappingSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="RealWorldValueMappingSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="RealWorldValueMappingMacroOKInSharedFunctionalGroupSequenceAndPhotometricInterpretationIsMonochrome2"
-	Element="RealWorldValueMappingSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RealWorldValueMappingSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="RealWorldValueMappingSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	Element="PhotometricInterpretation"					Operator="And"	StringValueFromRootAttribute="MONOCHROME2"
 ConditionEnd
@@ -4431,166 +4451,166 @@ ConditionEnd
 
 Condition="RealWorldValueMappingMacroOKInPerFrameFunctionalGroupSequence"
 	Element="RealWorldValueMappingSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="RealWorldValueMappingSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RealWorldValueMappingSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="RealWorldValueMappingMacroOKInPerFrameFunctionalGroupSequenceAndPhotometricInterpretationIsMonochrome2"
 	Element="RealWorldValueMappingSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="RealWorldValueMappingSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RealWorldValueMappingSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PhotometricInterpretation"					Operator="And"	StringValueFromRootAttribute="MONOCHROME2"
 ConditionEnd
 
 Condition="ReferencedImageMacroOKInSharedFunctionalGroupSequence"
-	Element="ReferencedImageSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ReferencedImageSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="ReferencedImageSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="ReferencedImageMacroOKInPerFrameFunctionalGroupSequence"
 	Element="ReferencedImageSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="ReferencedImageSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ReferencedImageSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="DerivationImageMacroOKInSharedFunctionalGroupSequence"
-	Element="DerivationImageSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="DerivationImageSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="DerivationImageSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="DerivationImageMacroOKInPerFrameFunctionalGroupSequence"
 	Element="DerivationImageSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="DerivationImageSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="DerivationImageSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="CardiacSynchronizationMacroOKInSharedFunctionalGroupSequence"
-	Element="CardiacSynchronizationSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CardiacSynchronizationSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CardiacSynchronizationSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="CardiacSynchronizationMacroOKInPerFrameFunctionalGroupSequence"
 	Element="CardiacSynchronizationSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CardiacSynchronizationSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CardiacSynchronizationSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FramePixelShiftMacroOKInSharedFunctionalGroupSequence"
-	Element="FramePixelShiftSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FramePixelShiftSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="FramePixelShiftSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FramePixelShiftMacroOKInPerFrameFunctionalGroupSequence"
 	Element="FramePixelShiftSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="FramePixelShiftSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FramePixelShiftSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FrameDisplayShutterMacroOKInSharedFunctionalGroupSequence"
-	Element="FrameDisplayShutterSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameDisplayShutterSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="FrameDisplayShutterSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FrameDisplayShutterMacroOKInPerFrameFunctionalGroupSequence"
 	Element="FrameDisplayShutterSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="FrameDisplayShutterSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameDisplayShutterSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="RespiratorySynchronizationMacroOKInSharedFunctionalGroupSequence"
-	Element="RespiratorySynchronizationSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RespiratorySynchronizationSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="RespiratorySynchronizationSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="RespiratorySynchronizationMacroOKInPerFrameFunctionalGroupSequence"
 	Element="RespiratorySynchronizationSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="RespiratorySynchronizationSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RespiratorySynchronizationSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayFrameCharacteristicsMacroOKInSharedFunctionalGroupSequence"
-	Element="XAXRFFrameCharacteristicsSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="XAXRFFrameCharacteristicsSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="XAXRFFrameCharacteristicsSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayFrameCharacteristicsMacroOKInPerFrameFunctionalGroupSequence"
 	Element="XAXRFFrameCharacteristicsSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="XAXRFFrameCharacteristicsSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="XAXRFFrameCharacteristicsSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayExposureControlSensingRegionsMacroOKInSharedFunctionalGroupSequence"
-	Element="ExposureControlSensingRegionsSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ExposureControlSensingRegionsSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="ExposureControlSensingRegionsSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayExposureControlSensingRegionsMacroOKInPerFrameFunctionalGroupSequence"
 	Element="ExposureControlSensingRegionsSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="ExposureControlSensingRegionsSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ExposureControlSensingRegionsSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayCalibrationDeviceUsageMacroOKInSharedFunctionalGroupSequence"
-	Element="CalibrationSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CalibrationSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CalibrationSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayCalibrationDeviceUsageMacroOKInPerFrameFunctionalGroupSequence"
 	Element="CalibrationSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CalibrationSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CalibrationSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayObjectThicknessMacroOKInSharedFunctionalGroupSequence"
-	Element="ObjectThicknessSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ObjectThicknessSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="ObjectThicknessSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayObjectThicknessMacroOKInPerFrameFunctionalGroupSequence"
 	Element="ObjectThicknessSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="ObjectThicknessSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ObjectThicknessSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayFrameAcquisitionMacroOKInSharedFunctionalGroupSequence"
-	Element="FrameAcquisitionSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameAcquisitionSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="FrameAcquisitionSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayFrameAcquisitionMacroOKInPerFrameFunctionalGroupSequence"
 	Element="FrameAcquisitionSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="FrameAcquisitionSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameAcquisitionSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
 Condition="XRayIsocenterReferenceSystemMacroOKInSharedFunctionalGroupSequence"
-	Element="IsocenterReferenceSystemSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="IsocenterReferenceSystemSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="IsocenterReferenceSystemSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	Element="CArmPositionerTabletopRelationship"			Operator="And"	StringValueFromRootAttribute="YES"
 ConditionEnd
 
 Condition="XRayIsocenterReferenceSystemMacroOKInPerFrameFunctionalGroupSequence"
 	Element="IsocenterReferenceSystemSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="IsocenterReferenceSystemSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="IsocenterReferenceSystemSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CArmPositionerTabletopRelationship"			Operator="And"	StringValueFromRootAttribute="YES"
 ConditionEnd
 
 
 Condition="PatientOrientationInFrameMacroOKInSharedFunctionalGroupSequence"
-	Element="PatientOrientationInFrameSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PatientOrientationInFrameSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PatientOrientationInFrameSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PatientOrientationInFrameMacroOKInPerFrameFunctionalGroupSequence"
 	Element="PatientOrientationInFrameSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PatientOrientationInFrameSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PatientOrientationInFrameSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
 Condition="TemporalPositionMacroOKInSharedFunctionalGroupSequence"
-	Element="TemporalPositionSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="TemporalPositionSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="TemporalPositionSequence"				Operator="And"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 	Element="CardiacSynchronizationSequence"		Operator="And"	Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CardiacSynchronizationSequence"		Operator="And"	Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CardiacSynchronizationSequence"		Operator="And"	Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="RespiratorySynchronizationSequence"	Operator="And"	Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="RespiratorySynchronizationSequence"	Operator="And"	Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RespiratorySynchronizationSequence"	Operator="And"	Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="TemporalPositionMacroOKInPerFrameFunctionalGroupSequence"
 	Element="TemporalPositionSequence"				Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="TemporalPositionSequence"				Operator="And"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="TemporalPositionSequence"				Operator="And"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CardiacSynchronizationSequence"		Operator="And"	Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CardiacSynchronizationSequence"		Operator="And"	Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CardiacSynchronizationSequence"		Operator="And"	Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="RespiratorySynchronizationSequence"	Operator="And"	Modifier="Not"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="RespiratorySynchronizationSequence"	Operator="And"	Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="RespiratorySynchronizationSequence"	Operator="And"	Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
@@ -4599,7 +4619,7 @@ Condition="FrameVOILUTSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="FrameVOILUTSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="FrameVOILUTSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameVOILUTSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
@@ -4608,18 +4628,18 @@ Condition="ImageDataTypeSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="ImageDataTypeSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="ImageDataTypeSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ImageDataTypeSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
 Condition="IrradiationEventIdentificationMacroOKInSharedFunctionalGroupSequence"
-	Element="IrradiationEventIdentificationSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="IrradiationEventIdentificationSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="IrradiationEventIdentificationSequence"				Operator="And" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="IrradiationEventIdentificationMacroOKInPerFrameFunctionalGroupSequence"
 	Element="IrradiationEventIdentificationSequence"				Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="IrradiationEventIdentificationSequence"				Operator="And" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="IrradiationEventIdentificationSequence"				Operator="And" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="IrradiationEventIdentificationSequenceNotInSharedFunctionalGroupSequence"
@@ -4627,7 +4647,7 @@ Condition="IrradiationEventIdentificationSequenceNotInSharedFunctionalGroupSeque
 ConditionEnd
 
 Condition="IrradiationEventIdentificationSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="IrradiationEventIdentificationSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="IrradiationEventIdentificationSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="ConversionSourceAttributesSequenceNotInSharedFunctionalGroupSequence"
@@ -4635,7 +4655,7 @@ Condition="ConversionSourceAttributesSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="ConversionSourceAttributesSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="ConversionSourceAttributesSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ConversionSourceAttributesSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FramePixelDataPropertiesSequenceNotInSharedFunctionalGroupSequence"
@@ -4643,35 +4663,35 @@ Condition="FramePixelDataPropertiesSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="FramePixelDataPropertiesSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="FramePixelDataPropertiesSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FramePixelDataPropertiesSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPixelIntensityRelationshipLUTMacroInSharedFunctionalGroupSequence"
 	Element="PixelIntensityRelationship"			StringValueFromRootAttribute="LOG"
-	Element="PixelIntensityRelationshipLUTSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelIntensityRelationshipLUTSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PixelIntensityRelationshipLUTSequence"	Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPixelIntensityRelationshipLUTMacroInPerFrameFunctionalGroupSequence"
 	Element="PixelIntensityRelationship"			StringValueFromRootAttribute="LOG"
 	Element="PixelIntensityRelationshipLUTSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PixelIntensityRelationshipLUTSequence"	Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelIntensityRelationshipLUTSequence"	Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPatientOrientationInFrameMacroInSharedFunctionalGroupSequence"
 	Element="CArmPositionerTabletopRelationship"		StringValueFromRootAttribute="YES"
-	Element="PatientOrientationInFrameSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PatientOrientationInFrameSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PatientOrientationInFrameSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedPatientOrientationInFrameMacroInPerFrameFunctionalGroupSequence"
 	Element="CArmPositionerTabletopRelationship"		StringValueFromRootAttribute="YES"
 	Element="PatientOrientationInFrameSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PatientOrientationInFrameSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PatientOrientationInFrameSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FieldOfViewSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="FieldOfViewSequence"					Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FieldOfViewSequence"					Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="FieldOfViewSequenceNotInSharedFunctionalGroupSequence"
@@ -4680,54 +4700,54 @@ ConditionEnd
 
 Condition="NeedXRayFieldOfViewMacroInSharedFunctionalGroupSequence"
 	Element="IsocenterReferenceSystemSequence"		ElementPresentInRoot=""
-	Element="FieldOfViewSequence"					Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FieldOfViewSequence"					Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="FieldOfViewSequence"					Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedXRayFieldOfViewMacroInPerFrameFunctionalGroupSequence"
 	Element="IsocenterReferenceSystemSequence"		ElementPresentInRoot=""
 	Element="FieldOfViewSequence"					Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="FieldOfViewSequence"					Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FieldOfViewSequence"					Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayFrameDetectorParametersMacroOKInSharedFunctionalGroupSequence"
-	Element="FrameDetectorParametersSequence"	Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameDetectorParametersSequence"	Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="FrameDetectorParametersSequence"	Operator="And" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayFrameDetectorParametersMacroOKInPerFrameFunctionalGroupSequence"
 	Element="FrameDetectorParametersSequence"	Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="FrameDetectorParametersSequence"	Operator="And" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameDetectorParametersSequence"	Operator="And" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedXRayFrameDetectorParametersMacroInSharedFunctionalGroupSequence"
 	Element="XRayReceptorType"					StringValueFromRootAttribute="DIGITAL_DETECTOR"
-	Element="FrameDetectorParametersSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameDetectorParametersSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="FrameDetectorParametersSequence"	Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedXRayFrameDetectorParametersMacroInPerFrameFunctionalGroupSequence"
 	Element="XRayReceptorType"					StringValueFromRootAttribute="DIGITAL_DETECTOR"
 	Element="FrameDetectorParametersSequence"	Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="FrameDetectorParametersSequence"	Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameDetectorParametersSequence"	Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedXRayProjectionPixelCalibrationMacroInSharedFunctionalGroupSequence"
 	Element="CArmPositionerTabletopRelationship"		StringValueFromRootAttribute="YES"
-	Element="ProjectionPixelCalibrationSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ProjectionPixelCalibrationSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="ProjectionPixelCalibrationSequence"		Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedXRayProjectionPixelCalibrationMacroInPerFrameFunctionalGroupSequence"
 	Element="CArmPositionerTabletopRelationship"		StringValueFromRootAttribute="YES"
 	Element="ProjectionPixelCalibrationSequence"		Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="ProjectionPixelCalibrationSequence"		Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ProjectionPixelCalibrationSequence"		Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedXRayPositionerMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0"	StringValueFromRootAttribute="ORIGINAL"
 	Element="CArmPositionerTabletopRelationship"		StringValueFromRootAttribute="YES"
-	Element="PositionerPositionSequence"				Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PositionerPositionSequence"				Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PositionerPositionSequence"				Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -4735,13 +4755,13 @@ Condition="NeedXRayPositionerMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0"	StringValueFromRootAttribute="ORIGINAL"
 	Element="CArmPositionerTabletopRelationship"		StringValueFromRootAttribute="YES"
 	Element="PositionerPositionSequence"				Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PositionerPositionSequence"				Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PositionerPositionSequence"				Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedXRayTablePositionMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0"	StringValueFromRootAttribute="ORIGINAL"
 	Element="CArmPositionerTabletopRelationship"		StringValueFromRootAttribute="YES"
-	Element="TablePositionSequence"						Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="TablePositionSequence"						Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="TablePositionSequence"						Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -4749,11 +4769,11 @@ Condition="NeedXRayTablePositionMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0"	StringValueFromRootAttribute="ORIGINAL"
 	Element="CArmPositionerTabletopRelationship"		StringValueFromRootAttribute="YES"
 	Element="TablePositionSequence"						Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="TablePositionSequence"						Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="TablePositionSequence"						Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="CollimatorShapeSequenceSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="CollimatorShapeSequence"					Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CollimatorShapeSequence"					Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="CollimatorShapeSequenceSequenceNotInSharedFunctionalGroupSequence"
@@ -4762,28 +4782,28 @@ ConditionEnd
 
 Condition="NeedXRayCollimatorMacroInSharedFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0"	StringValueFromRootAttribute="ORIGINAL"
-	Element="CollimatorShapeSequence"					Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CollimatorShapeSequence"					Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="CollimatorShapeSequence"					Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedXRayCollimatorMacroInPerFrameFunctionalGroupSequence"
 	Element="ImageType"									ValueSelector="0"	StringValueFromRootAttribute="ORIGINAL"
 	Element="CollimatorShapeSequence"					Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="CollimatorShapeSequence"					Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="CollimatorShapeSequence"					Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 # should really check for ProjectionPixelCalibrationSequence in either shared or per-frame sequence, but cannot ... 
 
 Condition="NeedXRayGeometryMacroInSharedFunctionalGroupSequence"
 	Element="CArmPositionerTabletopRelationship"		StringValueFromRootAttribute="YES"
-	Element="XRayGeometrySequence"						Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="XRayGeometrySequence"						Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="XRayGeometrySequence"						Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedXRayGeometryMacroInPerFrameFunctionalGroupSequence"
 	Element="CArmPositionerTabletopRelationship"		StringValueFromRootAttribute="YES"
 	Element="XRayGeometrySequence"						Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="XRayGeometrySequence"						Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="XRayGeometrySequence"						Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="ResponsiblePersonIsPresentWithValue"
@@ -5063,7 +5083,7 @@ ConditionEnd
 
 Condition="UnwantedPixelAspectRatioWhenPerFramePixelMeasuresMacro"
 	Element="PixelAspectRatio"					ElementPresent=""
-	Element="PixelMeasuresSequence"				Operator="And" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelMeasuresSequence"				Operator="And" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 # find libsrc/standard/module -name '*.tpl' -exec grep InvokeMacro '{}' ';' | grep FunctionalGroupSequence | sed -e 's/^.*InvokeMacro="//' -e 's/Macro".*$/Sequence/' | sort -u | xargs -L1 dcdict -k
@@ -5269,13 +5289,13 @@ Condition="CodeValueAndLongCodeValueAbsent"
 ConditionEnd
 
 Condition="NeedOphthalmicFrameLocationMacroInSharedFunctionalGroupSequence"
-	Element="OphthalmicFrameLocationSequence"		Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="OphthalmicFrameLocationSequence"		Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="OphthalmicFrameLocationSequence"		Operator="And" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedOphthalmicFrameLocationMacroInPerFrameFunctionalGroupSequence"
 	Element="OphthalmicFrameLocationSequence"		Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="OphthalmicFrameLocationSequence"		Operator="And" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="OphthalmicFrameLocationSequence"		Operator="And" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 # should check AcquisitionDeviceTypeCodeSequence contains (A-00FBE, SRT, ”Optical Coherence Tomography Scanner”) ... too hard for now :(
@@ -5295,7 +5315,7 @@ Condition="XRay3DFrameTypeSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="XRay3DFrameTypeSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="XRay3DFrameTypeSequence"		Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="XRay3DFrameTypeSequence"		Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="NeedModulePatientOrientation"
@@ -5425,7 +5445,7 @@ ConditionEnd
 Condition="LateralityRequired"
 	Element="ImageLaterality"						Modifier="Not" ElementPresent=""
 	Element="FrameAnatomySequence"					Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="FrameAnatomySequence"					Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="FrameAnatomySequence"					Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="SegmentSequence"						Operator="And" Modifier="Not" ElementPresent=""
 	Element="SpecimenDescriptionSequence"			Operator="And" Modifier="Not" ElementPresent=""
 	(
@@ -5718,7 +5738,7 @@ Condition="InstancesAreReferencedAndStudiesContainingOtherReferencedInstancesSeq
 	Element="StudiesContainingOtherReferencedInstancesSequence"		Modifier="Not" ElementPresent=""
 	(
 		Element="ReferencedSOPInstanceUID"							ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-		Element="ReferencedSOPInstanceUID"			Operator="Or"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="ReferencedSOPInstanceUID"			Operator="Or"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="ReferencedSOPInstanceUID"			Operator="Or"	ElementPresentInPathFromRoot="StereoPairsSequence"
 		Element="ReferencedSOPInstanceUID"			Operator="Or"	ElementPresentInPathFromRoot="RegistrationSequence"
 		Element="ReferencedSOPInstanceUID"			Operator="Or"	ElementPresentInPathFromRoot="DeformableRegistrationSequence"
@@ -5731,7 +5751,7 @@ Condition="InstancesAreReferencedAndReferencedSeriesSequenceAbsent"
 	Element="ReferencedSeriesSequence"								Modifier="Not" ElementPresent=""
 	(
 		Element="ReferencedSOPInstanceUID"							ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-		Element="ReferencedSOPInstanceUID"			Operator="Or"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+		Element="ReferencedSOPInstanceUID"			Operator="Or"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 		Element="ReferencedSOPInstanceUID"			Operator="Or"	ElementPresentInPathFromRoot="StereoPairsSequence"
 		Element="ReferencedSOPInstanceUID"			Operator="Or"	ElementPresentInPathFromRoot="RegistrationSequence"
 		Element="ReferencedSOPInstanceUID"			Operator="Or"	ElementPresentInPathFromRoot="DeformableRegistrationSequence"
@@ -6063,6 +6083,17 @@ Condition="WindowWidthIsNegative"
 	Element="WindowWidth"						BinaryValue="< 0"
 ConditionEnd
 
+Condition="WindowWidthIsZeroAndSigmoid"
+	Element="WindowWidth"						BinaryValue="== 0"
+	Element="VOILUTFunction"					Operator="And"	StringValue="SIGMOID"
+ConditionEnd
+
+Condition="WindowWidthIsLessThanOneAndNotExact"
+	Element="WindowWidth"						BinaryValue="< 1"
+	Element="VOILUTFunction"					Operator="And"	Modifier="Not" StringValue="LINEAR_EXACT"
+	Element="VOILUTFunction"					Operator="And"	Modifier="Not" StringValue="SIGMOID"
+ConditionEnd
+
 Condition="IVUSAcquisitionIsMotorized"
 	Element="IVUSAcquisition"				StringValueFromRootAttribute="MOTORIZED"
 ConditionEnd
@@ -6076,7 +6107,7 @@ Condition="IntravascularOCTFrameTypeSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="IntravascularOCTFrameTypeSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="IntravascularOCTFrameTypeSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="IntravascularOCTFrameTypeSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="IntravascularFrameContentSequenceNotInSharedFunctionalGroupSequence"
@@ -6084,7 +6115,7 @@ Condition="IntravascularFrameContentSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="IntravascularFrameContentSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="IntravascularFrameContentSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="IntravascularFrameContentSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="IntravascularFrameContentSequenceNotInSharedFunctionalGroupSequenceAndAcquisitionIsMeasured"
@@ -6093,7 +6124,7 @@ Condition="IntravascularFrameContentSequenceNotInSharedFunctionalGroupSequenceAn
 ConditionEnd
 
 Condition="IntravascularFrameContentSequenceNotInPerFrameFunctionalGroupSequenceAndAcquisitionIsMeasured"
-	Element="IntravascularFrameContentSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="IntravascularFrameContentSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="IVUSAcquisition"								Operator="And" StringValueFromRootAttribute="MEASURED"
 ConditionEnd
 
@@ -6102,7 +6133,7 @@ Condition="IntravascularOCTFrameContentSequenceNotInSharedFunctionalGroupSequenc
 ConditionEnd
 
 Condition="IntravascularOCTFrameContentSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="IntravascularOCTFrameContentSequence"			Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="IntravascularOCTFrameContentSequence"			Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="PresentationIntentTypeIsForProcessing"
@@ -6199,9 +6230,9 @@ Condition="UltrasoundAcquisitionGeometryIsApex"
 ConditionEnd
 
 Condition="NeedPatientFrameOfReferenceSource"
-	Element="ImagePositionPatient"							ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ImagePositionPatient"							ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="ImagePositionPatient"			Operator="Or"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="ImageOrientationPatient"		Operator="Or"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ImageOrientationPatient"		Operator="Or"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="ImageOrientationPatient"		Operator="Or"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -6273,13 +6304,13 @@ Condition="NeedModuleOpticalPath"
 ConditionEnd
 
 Condition="SpecimenReferenceMacroOKInSharedFunctionalGroupSequence"
-	Element="SpecimenReferenceSequence"				Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="SpecimenReferenceSequence"				Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="SpecimenReferenceSequence"				Operator="And" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="SpecimenReferenceMacroOKInPerFrameFunctionalGroupSequence"
 	Element="SpecimenReferenceSequence"				Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="SpecimenReferenceSequence"				Operator="And" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="SpecimenReferenceSequence"				Operator="And" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
@@ -6288,7 +6319,7 @@ Condition="PlanePositionSlideSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="PlanePositionSlideSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="PlanePositionSlideSequence"			Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PlanePositionSlideSequence"			Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 
@@ -6297,7 +6328,7 @@ Condition="OpticalPathIdentificationSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="OpticalPathIdentificationSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="OpticalPathIdentificationSequence"		Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="OpticalPathIdentificationSequence"		Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="ImageTypeValue3LocalizerOrLabel"
@@ -6336,7 +6367,7 @@ ConditionEnd
 # does not check that EVERY PerFrameFunctionalGroupsSequence item has it, if not in Shared, but better than no check at all :(
 Condition="PixelSpacingNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndVolumetricPropertiesIsNotDistortedSampledOrSegmentationWithFrameOfReference"
 	Element="PixelSpacing"											Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PixelSpacing"							Operator="And"	Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PixelSpacing"							Operator="And"	Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		(
 			Element="VolumetricProperties"							Modifier="Not" StringValueFromRootAttribute="DISTORTED"
@@ -6352,7 +6383,7 @@ ConditionEnd
 # does not check that EVERY PerFrameFunctionalGroupsSequence item has it, if not in Shared, but better than no check at all :(
 Condition="SliceThicknessNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndVolumetricPropertiesIsVolumeOrSampledOrSegmentationWithFrameOfReference"
 	Element="SliceThickness"										Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="SliceThickness"						Operator="And"	Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="SliceThickness"						Operator="And"	Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		Element="VolumetricProperties"								StringValueFromRootAttribute="VOLUME"
 		Element="VolumetricProperties"				Operator="Or"	StringValueFromRootAttribute="SAMPLED"
@@ -6366,7 +6397,7 @@ ConditionEnd
 #cannot actually check FrameType in corresponding per-frame functional group item, so check ImageType instead :(
 Condition="ImagePositionPatientNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndEitherFrameTypeIsOriginalAndVolumetricPropertiesIsNotDistortedOrSegmentationWithFrameOfReference"
 	Element="ImagePositionPatient"									Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="ImagePositionPatient"					Operator="And"	Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ImagePositionPatient"					Operator="And"	Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		(
 			Element="ImageType"										ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
@@ -6382,7 +6413,7 @@ ConditionEnd
 #cannot actually check FrameType in corresponding per-frame functional group item, so check ImageType instead :(
 Condition="ImageOrientationPatientNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndEitherFrameTypeIsOriginalAndVolumetricPropertiesIsNotDistortedOrSegmentationWithFrameOfReference"
 	Element="ImageOrientationPatient"								Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="ImageOrientationPatient"				Operator="And"	Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="ImageOrientationPatient"				Operator="And"	Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		(
 			Element="ImageType"										ValueSelector="0" StringValueFromRootAttribute="ORIGINAL"
@@ -6547,7 +6578,7 @@ Condition="ReferencedSegmentNumberPresentAndReferencedSOPClassUIDIsNotSegmentati
 ConditionEnd
 
 Condition="NeedDerivationImageMacroInSharedFunctionalGroupSequenceForBreastProjection"
-	Element="DerivationImageSequence"				Modifier="Not"	ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="DerivationImageSequence"				Modifier="Not"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	(
 		Element="ImageType"							ValueSelector="0"	StringValueFromRootAttribute="DERIVED"
 		(
@@ -6570,30 +6601,30 @@ ConditionEnd
 
 # real world ... treat as U ...
 Condition="NeedBreastXRayPositionerMacroInSharedFunctionalGroupSequence"
-	Element="PositionerPositionSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PositionerPositionSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PositionerPositionSequence"			Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 # real world ... treat as U ...
 Condition="NeedBreastXRayPositionerMacroInPerFrameFunctionalGroupSequence"
 	Element="PositionerPositionSequence"			Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="PositionerPositionSequence"			Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="PositionerPositionSequence"			Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 # real world ... treat as U ...
 Condition="NeedBreastXRayDetectorMacroInSharedFunctionalGroupSequence"
-	Element="DetectorPositionSequence"				Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="DetectorPositionSequence"				Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="DetectorPositionSequence"				Operator="Or" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 # real world ... treat as U ...
 Condition="NeedBreastXRayDetectorMacroInPerFrameFunctionalGroupSequence"
 	Element="DetectorPositionSequence"				Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="DetectorPositionSequence"				Operator="Or" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="DetectorPositionSequence"				Operator="Or" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayGeometrySequenceNotInPerFrameFunctionalGroupSequence"
-	Element="XRayGeometrySequence"					Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="XRayGeometrySequence"					Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayGeometrySequenceNotInSharedFunctionalGroupSequence"
@@ -6601,7 +6632,7 @@ Condition="XRayGeometrySequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="XRayAcquisitionDoseSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="XRayAcquisitionDoseSequence"			Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="XRayAcquisitionDoseSequence"			Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayAcquisitionDoseSequenceNotInSharedFunctionalGroupSequence"
@@ -6609,7 +6640,7 @@ Condition="XRayAcquisitionDoseSequenceNotInSharedFunctionalGroupSequence"
 ConditionEnd
 
 Condition="IsocenterReferenceSystemSequenceNotInPerFrameFunctionalGroupSequence"
-	Element="IsocenterReferenceSystemSequence"		Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="IsocenterReferenceSystemSequence"		Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="IsocenterReferenceSystemSequenceNotInSharedFunctionalGroupSequence"
@@ -6618,21 +6649,21 @@ ConditionEnd
 
 Condition="XRayGridMacroOKInPerFrameFunctionalGroupSequence"
 	Element="XRayGridSequence"						Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="XRayGridSequence"						Operator="And" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="XRayGridSequence"						Operator="And" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayGridMacroOKInSharedFunctionalGroupSequence"
-	Element="XRayGridSequence"						Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="XRayGridSequence"						Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="XRayGridSequence"						Operator="And" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayFilterMacroOKInPerFrameFunctionalGroupSequence"
 	Element="XRayFilterSequence"					Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
-	Element="XRayFilterSequence"					Operator="And" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="XRayFilterSequence"					Operator="And" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 ConditionEnd
 
 Condition="XRayFilterMacroOKInSharedFunctionalGroupSequence"
-	Element="XRayFilterSequence"					Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="XRayFilterSequence"					Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="XRayFilterSequence"					Operator="And" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
 ConditionEnd
 
@@ -6710,7 +6741,7 @@ Condition="PixelPresentationIsColorRangeAndPaletteColorLookupTableUIDAbsent"
 ConditionEnd
 
 Condition="StoredValueColorRangeSequenceNotInPerFrameFunctionalGroupSequenceAndPixelPresentationIsColorRange"
-	Element="StoredValueColorRangeSequence"		Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence"
+	Element="StoredValueColorRangeSequence"		Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
 	Element="PixelPresentation"					Operator="And" StringValueFromRootAttribute="COLOR_RANGE"
 ConditionEnd
 
@@ -6728,3 +6759,44 @@ Condition="CTDIvolIsPresentButCTDIPhantomTypeCodeSequenceIsNot"
 	Element="CTDIPhantomTypeCodeSequence"		Operator="And" Modifier="Not" ElementPresent=""
 ConditionEnd
 
+Condition="UnassignedSharedConvertedAttributesMacroPresentInSharedFunctionalGroupSequence"
+	Element="UnassignedSharedConvertedAttributesSequence"	ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
+ConditionEnd
+
+Condition="UnassignedPerFrameConvertedAttributesMacroPresentInPerFrameFunctionalGroupSequence"
+	Element="UnassignedPerFrameConvertedAttributesSequence"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
+ConditionEnd
+
+Condition="ImageFrameConversionSourceMacroPresentInPerFrameFunctionalGroupSequence"
+	Element="ConversionSourceAttributesSequence"	ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
+ConditionEnd
+
+Condition="IlluminationWaveLengthInvalid"
+	Element="IlluminationWaveLength"	BinaryValue="<= 0"
+ConditionEnd
+
+Condition="NeedModuleSlideLabel"
+	Element="ImageType"					ValueSelector="2"	StringValue="LABEL"
+	Element="BarcodeValue"				ElementPresent=""
+	Element="LabelText"					ElementPresent=""
+ConditionEnd
+
+Condition="LongitudinalTemporalOffsetFromEventIsPresent"
+	Element="LongitudinalTemporalOffsetFromEvent"			ElementPresent=""
+ConditionEnd
+
+Condition="NeedRecommendedDisplayCIELabValueListInTrackSequence"
+	Element="RecommendedDisplayCIELabValue"					Modifier="Not"	ElementPresent=""
+	Element="RecommendedDisplayCIELabValue"	Operator="And"	Modifier="Not"	ElementPresentAbove=""
+ConditionEnd
+
+Condition="NeedRecommendedDisplayCIELabValueInTrackSequence"
+	Element="RecommendedDisplayCIELabValueList"					Modifier="Not"	ElementPresent=""
+	Element="RecommendedDisplayCIELabValue"		Operator="And"	Modifier="Not"	ElementPresentAbove=""
+ConditionEnd
+
+Condition="NeedRecommendedDisplayCIELabValueInTrackSetSequence"
+	Element="RecommendedDisplayCIELabValueList"				Modifier="Not" ElementPresentWithin="TrackSequence"
+	Element="RecommendedDisplayCIELabValue"	Operator="And"	Modifier="Not" ElementPresentWithin="TrackSequence"
+ConditionEnd
+
diff --git a/libsrc/standard/elmdict/dicom3.tpl b/libsrc/standard/elmdict/dicom3.tpl
index 81d0a77..a0b2ce6 100644
--- a/libsrc/standard/elmdict/dicom3.tpl
+++ b/libsrc/standard/elmdict/dicom3.tpl
@@ -119,6 +119,7 @@
 (0008,0060) VERS="3"	VR="CS"   VM="1"	Keyword="Modality"				Name="Modality"
 (0008,0061) VERS="3"	VR="CS"   VM="1-n"	Keyword="ModalitiesInStudy"			Name="Modalities in Study"
 (0008,0062) VERS="3"	VR="UI"   VM="1-n"	Keyword="SOPClassesInStudy"			Name="SOP Classes in Study"
+(0008,0063) VERS="3"	VR="SQ"   VM="1"	Keyword="AnatomicRegionsInStudyCodeSequence"	Name="Anatomic Regions in Study Code Sequence"
 (0008,0064) VERS="3"	VR="CS"   VM="1"	Keyword="ConversionType"			Name="Conversion Type"
 (0008,0068) VERS="3"	VR="CS"   VM="1"	Keyword="PresentationIntentType"		Name="Presentation Intent Type"
 (0008,0070) VERS="3"	VR="LO"   VM="1"	Keyword="Manufacturer"				Name="Manufacturer"
@@ -138,9 +139,12 @@
 (0008,0105) VERS="3"	VR="CS"   VM="1"	Keyword="MappingResource"			Name="Mapping Resource"
 (0008,0106) VERS="3"	VR="DT"   VM="1"	Keyword="ContextGroupVersion"			Name="Context Group Version"
 (0008,0107) VERS="3"	VR="DT"   VM="1"	Keyword="ContextGroupLocalVersion"		Name="Context Group Local Version"
+(0008,0109) VERS="3"	VR="SQ"   VM="1"	Keyword="CodingSchemeResourcesSequence"		Name="Coding Scheme Resources Sequence"
+(0008,010A) VERS="3"	VR="CS"   VM="1"	Keyword="CodingSchemeURLType"				Name="Coding Scheme URL Type"
 (0008,010B) VERS="3"	VR="CS"   VM="1"	Keyword="ContextGroupExtensionFlag"		Name="Context Group Extension Flag"
 (0008,010C) VERS="3"	VR="UI"   VM="1"	Keyword="CodingSchemeUID"			Name="Coding Scheme UID"
 (0008,010D) VERS="3"	VR="UI"   VM="1"	Keyword="ContextGroupExtensionCreatorUID"	Name="Context Group Extension Creator UID"
+(0008,010E) VERS="3"	VR="CS"   VM="1"	Keyword="CodingSchemeURL"				Name="Coding Scheme URL"
 (0008,010F) VERS="3"	VR="CS"   VM="1"	Keyword="ContextIdentifier"			Name="Context Identifier"
 (0008,0110) VERS="3"	VR="SQ"   VM="1"	Keyword="CodingSchemeIdentificationSequence"	Name="Coding Scheme Identification Sequence"
 (0008,0112) VERS="3"	VR="LO"   VM="1"	Keyword="CodingSchemeRegistry"			Name="Coding Scheme Registry"
@@ -249,7 +253,7 @@
 (0008,2218) VERS="3"	VR="SQ"   VM="1"	Keyword="AnatomicRegionSequence"		Name="Anatomic Region Sequence"
 (0008,2220) VERS="3"	VR="SQ"   VM="1"	Keyword="AnatomicRegionModifierSequence"	Name="Anatomic Region Modifier Sequence"
 (0008,2228) VERS="3"	VR="SQ"   VM="1"	Keyword="PrimaryAnatomicStructureSequence"	Name="Primary Anatomic Structure Sequence"
-(0008,2229) VERS="3"	VR="SQ"   VM="1"	Keyword="AnatomicStructureSpaceOrRegionSequence"	Name="Anatomic Structure, Space or Region Sequence"
+(0008,2229) VERS="RET"	VR="SQ"   VM="1"	Keyword="AnatomicStructureSpaceOrRegionSequence"	Name="Anatomic Structure, Space or Region Sequence"
 (0008,2230) VERS="3"	VR="SQ"   VM="1"	Keyword="PrimaryAnatomicStructureModifierSequence"	Name="Primary Anatomic Structure Modifier Sequence"
 (0008,2240) VERS="RET"	VR="SQ"   VM="1"	Keyword="TransducerPositionSequence"		Name="Transducer Position Sequence"
 (0008,2242) VERS="RET"	VR="SQ"   VM="1"	Keyword="TransducerPositionModifierSequence"	Name="Transducer Position Modifier Sequence"
@@ -314,7 +318,7 @@
 (0010,0222) VERS="3"	VR="UC"   VM="1"	Keyword="GeneticModificationsDescription"	Name="Genetic Modifications Description"
 (0010,0223) VERS="3"	VR="LO"   VM="1"	Keyword="GeneticModificationsNomenclature"	Name="Genetic Modifications Nomenclature"
 (0010,0229) VERS="3"	VR="SQ"   VM="1"	Keyword="GeneticModificationsCodeSequence"	Name="Genetic Modifications Code Sequence"
-(0010,1000) VERS="3"	VR="LO"   VM="1-n"	Keyword="OtherPatientIDs"			Name="Other Patient IDs"
+(0010,1000) VERS="RET"	VR="LO"   VM="1-n"	Keyword="OtherPatientIDs"			Name="Other Patient IDs"
 (0010,1001) VERS="3"	VR="PN"   VM="1-n"	Keyword="OtherPatientNames"			Name="Other Patient Names"
 (0010,1002) VERS="3"	VR="SQ"   VM="1"	Keyword="OtherPatientIDsSequence"	Name="Other Patient IDs Sequence"
 (0010,1005) VERS="3"	VR="PN"   VM="1"	Keyword="PatientBirthName"			Name="Patient's Birth Name"
@@ -330,7 +334,7 @@
 (0010,1060) VERS="3"	VR="PN"   VM="1"	Keyword="PatientMotherBirthName"		Name="Patient's Mother's Birth Name"
 (0010,1080) VERS="3"	VR="LO"   VM="1"	Keyword="MilitaryRank"				Name="Military Rank"
 (0010,1081) VERS="3"	VR="LO"   VM="1"	Keyword="BranchOfService"			Name="Branch of Service"
-(0010,1090) VERS="3"	VR="LO"   VM="1"	Keyword="MedicalRecordLocator"			Name="Medical Record Locator"
+(0010,1090) VERS="RET"	VR="LO"   VM="1"	Keyword="MedicalRecordLocator"			Name="Medical Record Locator"
 (0010,1100) VERS="3"	VR="SQ"   VM="1"	Keyword="ReferencedPatientPhotoSequence"	Name="Referenced Patient Photo Sequence"
 (0010,2000) VERS="3"	VR="LO"   VM="1-n"	Keyword="MedicalAlerts"				Name="Medical Alerts"
 (0010,2110) VERS="3"	VR="LO"   VM="1-n"	Keyword="Allergies"					Name="Allergies"
@@ -368,6 +372,8 @@
 (0012,0042) VERS="3"	VR="LO"   VM="1"	Keyword="ClinicalTrialSubjectReadingID"		Name="Clinical Trial Subject Reading ID"
 (0012,0050) VERS="3"	VR="LO"   VM="1"	Keyword="ClinicalTrialTimePointID"		Name="Clinical Trial Time Point ID"
 (0012,0051) VERS="3"	VR="ST"   VM="1"	Keyword="ClinicalTrialTimePointDescription"	Name="Clinical Trial Time Point Description"
+(0012,0052) VERS="3"	VR="ST"   VM="1"	Keyword="LongitudinalTemporalOffsetFromEvent"	Name="Longitudinal Temporal Offset from Event"
+(0012,0053) VERS="3"	VR="ST"   VM="1"	Keyword="LongitudinalTemporalEventType"			Name="Longitudinal Temporal Event Type"
 (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"
@@ -548,7 +554,9 @@
 (0018,1191) VERS="3"	VR="CS"   VM="1"	Keyword="AnodeTargetMaterial"			Name="Anode Target Material"
 (0018,11A0) VERS="3"	VR="DS"   VM="1"	Keyword="BodyPartThickness"			Name="Body Part Thickness"
 (0018,11A2) VERS="3"	VR="DS"   VM="1"	Keyword="CompressionForce"			Name="Compression Force"
+(0018,11A3) VERS="3"	VR="DS"   VM="1"	Keyword="CompressionPressure"		Name="Compression Pressure"
 (0018,11A4) VERS="3"	VR="LO"   VM="1"	Keyword="PaddleDescription"			Name="Paddle Description"
+(0018,11A5) VERS="3"	VR="DS"   VM="1"	Keyword="CompressionContactArea"	Name="Compression Contact Area"
 (0018,1200) VERS="3"	VR="DA"   VM="1-n"	Keyword="DateOfLastCalibration"			Name="Date of Last Calibration"
 (0018,1201) VERS="3"	VR="TM"   VM="1-n"	Keyword="TimeOfLastCalibration"			Name="Time of Last Calibration"
 (0018,1202) VERS="3"	VR="DT"   VM="1"	Keyword="DateTimeOfLastCalibration"		Name="DateTime of Last Calibration"
@@ -1450,6 +1458,25 @@
 (0022,1529) VERS="3"	VR="FL"   VM="1"	Keyword="YCoordinatesCenterPixelViewAngle"							Name="Y Coordinates Center Pixel View Angle"
 (0022,1530) VERS="3"	VR="UL"   VM="1"	Keyword="NumberOfMapPoints"											Name="Number of Map Points"
 (0022,1531) VERS="3"	VR="OF"   VM="1"	Keyword="TwoDimensionalToThreeDimensionalMapData"					Name="Two Dimensional to Three Dimensional Map Data"
+(0022,1612) VERS="3"	VR="SQ"   VM="1"	Keyword="DerivationAlgorithmSequence"								Name="Derivation Algorithm Sequence"
+(0022,1615) VERS="3"	VR="SQ"   VM="1"	Keyword="OphthalmicImageTypeCodeSequence"							Name="Ophthalmic Image Type Code Sequence"
+(0022,1616) VERS="3"	VR="LO"   VM="1"	Keyword="OphthalmicImageTypeDescription"							Name="Ophthalmic Image Type Description"
+(0022,1618) VERS="3"	VR="SQ"   VM="1"	Keyword="ScanPatternTypeCodeSequence"								Name="Scan Pattern Type Code Sequence"
+(0022,1620) VERS="3"	VR="SQ"   VM="1"	Keyword="ReferencedSurfaceMeshIdentificationSequence"				Name="Referenced Surface Mesh Identification Sequence"
+(0022,1622) VERS="3"	VR="CS"   VM="1"	Keyword="OphthalmicVolumetricPropertiesFlag"						Name="Ophthalmic Volumetric Properties Flag"
+(0022,1624) VERS="3"	VR="FL"   VM="1"	Keyword="OphthalmicAnatomicReferencePointXCoordinate"				Name="Ophthalmic Anatomic Reference Point X-Coordinate"
+(0022,1626) VERS="3"	VR="FL"   VM="1"	Keyword="OphthalmicAnatomicReferencePointYCoordinate"				Name="Ophthalmic Anatomic Reference Point Y-Coordinate"
+(0022,1628) VERS="3"	VR="SQ"   VM="1"	Keyword="OphthalmicEnFaceImageQualityRatingSequence"				Name="Ophthalmic En Face Image Quality Rating Sequence"
+(0022,1630) VERS="3"	VR="DS"   VM="1"	Keyword="QualityThreshold"											Name="Quality Threshold"
+(0022,1640) VERS="3"	VR="SQ"   VM="1"	Keyword="OCTBscanAnalysisAcquisitionParametersSequence"				Name="OCT B-scan Analysis Acquisition Parameters Sequence"
+(0022,1642) VERS="3"	VR="UL"   VM="1"	Keyword="NumberofBscansPerFrame"									Name="Number of B-scans Per Frame"
+(0022,1643) VERS="3"	VR="FL"   VM="1"	Keyword="BscanSlabThickness"										Name="B-scan Slab Thickness"
+(0022,1644) VERS="3"	VR="FL"   VM="1"	Keyword="DistanceBetweenBscanSlabs"									Name="Distance Between B-scan Slabs"
+(0022,1645) VERS="3"	VR="FL"   VM="1"	Keyword="BscanCycleTime"											Name="B-scan Cycle Time"
+(0022,1646) VERS="3"	VR="FL"   VM="1-n"	Keyword="BscanCycleTimeVector"										Name="B-scan Cycle Time Vector"
+(0022,1649) VERS="3"	VR="FL"   VM="1"	Keyword="AscanRate"													Name="A-scan Rate"
+(0022,1650) VERS="3"	VR="FL"   VM="1"	Keyword="BscanRate"													Name="B-scan Rate"
+(0022,1658) VERS="3"	VR="UL"   VM="1"	Keyword="SurfaceMeshZPixelOffset"									Name="Surface Mesh Z-Pixel Offset"
 (0024,0010) VERS="3"	VR="FL"   VM="1"	Keyword="VisualFieldHorizontalExtent"				Name="Visual Field Horizontal Extent"
 (0024,0011) VERS="3"	VR="FL"   VM="1"	Keyword="VisualFieldVerticalExtent"					Name="Visual Field Vertical Extent"
 (0024,0012) VERS="3"	VR="CS"   VM="1"	Keyword="VisualFieldShape"							Name="Visual Field Shape"
@@ -1939,13 +1966,13 @@
 (0040,0294) VERS="3"	VR="DS"   VM="1"	Keyword="Quantity"				Name="Quantity"
 (0040,0295) VERS="3"	VR="SQ"   VM="1"	Keyword="MeasuringUnitsSequence"		Name="Measuring Units Sequence"
 (0040,0296) VERS="3"	VR="SQ"   VM="1"	Keyword="BillingItemSequence"			Name="Billing Item Sequence"
-(0040,0300) VERS="3"	VR="US"   VM="1"	Keyword="TotalTimeOfFluoroscopy"		Name="Total Time of Fluoroscopy"
-(0040,0301) VERS="3"	VR="US"   VM="1"	Keyword="TotalNumberOfExposures"		Name="Total Number of Exposures"
+(0040,0300) VERS="RET"	VR="US"   VM="1"	Keyword="TotalTimeOfFluoroscopy"		Name="Total Time of Fluoroscopy"
+(0040,0301) VERS="RET"	VR="US"   VM="1"	Keyword="TotalNumberOfExposures"		Name="Total Number of Exposures"
 (0040,0302) VERS="3"	VR="US"   VM="1"	Keyword="EntranceDose"				Name="Entrance Dose"
 (0040,0303) VERS="3"	VR="US"   VM="1-2"	Keyword="ExposedArea"				Name="Exposed Area"
 (0040,0306) VERS="3"	VR="DS"   VM="1"	Keyword="DistanceSourceToEntrance"		Name="Distance Source to Entrance"
 (0040,0307) VERS="RET"	VR="DS"   VM="1"	Keyword="DistanceSourceToSupport"		Name="Distance Source to Support"
-(0040,030E) VERS="3"	VR="SQ"   VM="1"	Keyword="ExposureDoseSequence"			Name="Exposure Dose Sequence"
+(0040,030E) VERS="RET"	VR="SQ"   VM="1"	Keyword="ExposureDoseSequence"			Name="Exposure Dose Sequence"
 (0040,0310) VERS="3"	VR="ST"   VM="1"	Keyword="CommentsOnRadiationDose"		Name="Comments on Radiation Dose"
 (0040,0312) VERS="3"	VR="DS"   VM="1"	Keyword="XRayOutput"				Name="X-Ray Output"
 (0040,0314) VERS="3"	VR="DS"   VM="1"	Keyword="HalfValueLayer"			Name="Half Value Layer"
@@ -2037,7 +2064,7 @@
 (0040,4016) VERS="RET"	VR="SQ"   VM="1"	Keyword="ReferencedGeneralPurposeScheduledProcedureStepSequence"	Name="Referenced General Purpose Scheduled Procedure Step Sequence"
 (0040,4018) VERS="3"	VR="SQ"   VM="1"	Keyword="ScheduledWorkitemCodeSequence"					Name="Scheduled Workitem Code Sequence"
 (0040,4019) VERS="3"	VR="SQ"   VM="1"	Keyword="PerformedWorkitemCodeSequence"					Name="Performed Workitem Code Sequence"
-(0040,4020) VERS="3"	VR="CS"   VM="1"	Keyword="InputAvailabilityFlag"						Name="Input Availability Flag"
+(0040,4020) VERS="RET"	VR="CS"   VM="1"	Keyword="InputAvailabilityFlag"						Name="Input Availability Flag"
 (0040,4021) VERS="3"	VR="SQ"   VM="1"	Keyword="InputInformationSequence"					Name="Input Information Sequence"
 (0040,4022) VERS="RET"	VR="SQ"   VM="1"	Keyword="RelevantInformationSequence"					Name="Relevant Information Sequence"
 (0040,4023) VERS="RET"	VR="UI"   VM="1"	Keyword="ReferencedGeneralPurposeScheduledProcedureStepTransactionUID"	Name="Referenced General Purpose Scheduled Procedure Step Transaction UID"
@@ -2065,6 +2092,7 @@
 (0040,4073) VERS="3"	VR="UR"   VM="1"	Keyword="StorageURL"							Name="Storage URL"
 (0040,4074) VERS="3"	VR="SQ"   VM="1"	Keyword="XDSStorageSequence"					Name="XDS Storage Sequence"
 (0040,8302) VERS="3"	VR="DS"   VM="1"	Keyword="EntranceDoseInmGy"				Name="Entrance Dose in mGy"
+(0040,8303) VERS="3"	VR="CS"   VM="1"	Keyword="EntranceDoseDerivation"				Name="Entrance Dose Derivation"
 (0040,9092) VERS="3"	VR="SQ"   VM="1"	Keyword="ParametricMapFrameTypeSequence"			Name="Parametric Map Frame Type Sequence"
 (0040,9094) VERS="3"	VR="SQ"   VM="1"	Keyword="ReferencedImageRealWorldValueMappingSequence"		Name="Referenced Image Real World Value Mapping Sequence"
 (0040,9096) VERS="3"	VR="SQ"   VM="1"	Keyword="RealWorldValueMappingSequence"		Name="Real World Value Mapping Sequence"
@@ -2227,6 +2255,17 @@
 (0044,0012) VERS="3"	VR="LO"   VM="1"	Keyword="SubstanceAdministrationDeviceID"			Name="Substance Administration Device ID"
 (0044,0013) VERS="3"	VR="SQ"   VM="1"	Keyword="ProductParameterSequence"					Name="Product Parameter Sequence"
 (0044,0019) VERS="3"	VR="SQ"   VM="1"	Keyword="SubstanceAdministrationParameterSequence"	Name="Substance Administration Parameter Sequence"
+(0044,0100) VERS="3"	VR="SQ"   VM="1"	Keyword="ApprovalSequence"							Name="Approval Sequence"
+(0044,0101) VERS="3"	VR="SQ"   VM="1"	Keyword="AssertionCodeSequence"						Name="Assertion Code Sequence"
+(0044,0102) VERS="3"	VR="UI"   VM="1"	Keyword="AssertionUID"								Name="Assertion UID"
+(0044,0103) VERS="3"	VR="SQ"   VM="1"	Keyword="AsserterIdentificationSequence"			Name="Asserter Identification Sequence"
+(0044,0104) VERS="3"	VR="DT"   VM="1"	Keyword="AssertionDateTime"							Name="Assertion DateTime"
+(0044,0105) VERS="3"	VR="DT"   VM="1"	Keyword="AssertionExpirationDateTime"				Name="Assertion Expiration DateTime"
+(0044,0106) VERS="3"	VR="UT"   VM="1"	Keyword="AssertionComments"							Name="Assertion Comments"
+(0044,0107) VERS="3"	VR="SQ"   VM="1"	Keyword="RelatedAssertionSequence"					Name="Related Assertion Sequence"
+(0044,0108) VERS="3"	VR="UI"   VM="1"	Keyword="ReferencedAssertionUID"					Name="Referenced Assertion UID"
+(0044,0109) VERS="3"	VR="SQ"   VM="1"	Keyword="ApprovalSubjectSequence"					Name="Approval Subject Sequence"
+(0044,010A) VERS="3"	VR="SQ"   VM="1"	Keyword="OrganizationalRoleCodeSequence"			Name="Organizational Role Code Sequence"
 (0046,0012) VERS="3"	VR="LO"   VM="1"	Keyword="LensDescription"							Name="Lens Description"
 (0046,0014) VERS="3"	VR="SQ"   VM="1"	Keyword="RightLensSequence"							Name="Right Lens Sequence"
 (0046,0015) VERS="3"	VR="SQ"   VM="1"	Keyword="LeftLensSequence"							Name="Left Lens Sequence"
@@ -2561,6 +2600,7 @@
 (0066,0130) VERS="3"	VR="SQ"   VM="1"	Keyword="TrackStatisticsSequence"									Name="Track Statistics Sequence"
 (0066,0132) VERS="3"	VR="SQ"   VM="1"	Keyword="MeasurementValuesSequence"									Name="Measurement Values Sequence"
 (0066,0133) VERS="3"	VR="SQ"   VM="1"	Keyword="DiffusionAcquisitionCodeSequence"							Name="Diffusion Acquisition Code Sequence"
+(0066,0134) VERS="3"	VR="SQ"   VM="1"	Keyword="DiffusionModelCodeSequence"								Name="Diffusion Model Code Sequence"
 (0068,6210) VERS="3"	VR="LO"   VM="1"	Keyword="ImplantSize"												Name="Implant Size"
 (0068,6221) VERS="3"	VR="LO"   VM="1"	Keyword="ImplantTemplateVersion"									Name="Implant Template Version"
 (0068,6222) VERS="3"	VR="SQ"   VM="1"	Keyword="ReplacedImplantTemplateSequence"							Name="Replaced Implant Template Sequence"
@@ -2748,9 +2788,14 @@
 (0070,1203) VERS="3"	VR="US"   VM="1"	Keyword="InputSequencePositionIndex"				Name="Input Sequence Position Index"
 (0070,1204) VERS="3"	VR="CS"   VM="1"	Keyword="Crop"				Name="Crop"
 (0070,1205) VERS="3"	VR="US"   VM="1-n"	Keyword="CroppingSpecificationIndex"				Name="Cropping Specification Index"
-(0070,1206) VERS="3"	VR="CS"   VM="1"	Keyword="CompositingMethod"				Name="Compositing Method"
+(0070,1206) VERS="RET"	VR="CS"   VM="1"	Keyword="CompositingMethod"				Name="Compositing Method"
 (0070,1207) VERS="3"	VR="US"   VM="1"	Keyword="VolumetricPresentationInputNumber"				Name="Volumetric Presentation Input Number"
 (0070,1208) VERS="3"	VR="CS"   VM="1"	Keyword="ImageVolumeGeometry"				Name="Image Volume Geometry"
+(0070,1209) VERS="3"	VR="UI"   VM="1"	Keyword="VolumetricPresentationInputSetUID"		Name="Volumetric Presentation Input Set UID"
+(0070,120A) VERS="3"	VR="SQ"   VM="1"	Keyword="VolumetricPresentationInputSetSequence"		Name="Volumetric Presentation Input Set Sequence"
+(0070,120B) VERS="3"	VR="CS"   VM="1"	Keyword="GlobalCrop"		Name="Global Crop"
+(0070,120C) VERS="3"	VR="US"   VM="1-n"	Keyword="GlobalCroppingSpecificationIndex"		Name="Global Cropping Specification Index"
+(0070,120D) VERS="3"	VR="CS"   VM="1"	Keyword="RenderingMethod"		Name="Rendering Method"
 (0070,1301) VERS="3"	VR="SQ"   VM="1"	Keyword="VolumeCroppingSequence"				Name="Volume Cropping Sequence"
 (0070,1302) VERS="3"	VR="CS"   VM="1"	Keyword="VolumeCroppingMethod"				Name="Volume Cropping Method"
 (0070,1303) VERS="3"	VR="FD"   VM="6"	Keyword="BoundingBoxCrop"				Name="Bounding Box Crop"
@@ -2768,6 +2813,18 @@
 (0070,150D) VERS="3"	VR="OD"   VM="1"	Keyword="VolumetricCurvePoints"				Name="Volumetric Curve Points"
 (0070,1511) VERS="3"	VR="FD"   VM="3"	Keyword="MPRViewHeightDirection"				Name="MPR View Height Direction"
 (0070,1512) VERS="3"	VR="FD"   VM="1"	Keyword="MPRViewHeight"				Name="MPR View Height"
+(0070,1602) VERS="3"	VR="CS"   VM="1"	Keyword="RenderProjection"		Name="Render Projection"
+(0070,1603) VERS="3"	VR="FD"   VM="3"	Keyword="ViewpointPosition"		Name="Viewpoint Position"
+(0070,1604) VERS="3"	VR="FD"   VM="3"	Keyword="ViewpointLookAtPoint"		Name="Viewpoint LookAt Point"
+(0070,1605) VERS="3"	VR="FD"   VM="3"	Keyword="ViewpointUpDirection"		Name="Viewpoint Up Direction"
+(0070,1606) VERS="3"	VR="FD"   VM="6"	Keyword="RenderFieldOfView"		Name="Render Field of View"
+(0070,1607) VERS="3"	VR="FD"   VM="1"	Keyword="SamplingStepSize"		Name="Sampling Step Size"
+(0070,1701) VERS="3"	VR="CS"   VM="1"	Keyword="ShadingStyle"		Name="Shading Style"
+(0070,1702) VERS="3"	VR="FD"   VM="1"	Keyword="AmbientReflectionIntensity"		Name="Ambient Reflection Intensity"
+(0070,1703) VERS="3"	VR="FD"   VM="3"	Keyword="LightDirection"		Name="Light Direction"
+(0070,1704) VERS="3"	VR="FD"   VM="1"	Keyword="DiffuseReflectionIntensity"		Name="Diffuse Reflection Intensity"
+(0070,1705) VERS="3"	VR="FD"   VM="1"	Keyword="SpecularReflectionIntensity"		Name="Specular Reflection Intensity"
+(0070,1706) VERS="3"	VR="FD"   VM="1"	Keyword="Shininess"		Name="Shininess"
 (0070,1801) VERS="3"	VR="SQ"   VM="1"	Keyword="PresentationStateClassificationComponentSequence"				Name="Presentation State Classification Component Sequence"
 (0070,1802) VERS="3"	VR="CS"   VM="1"	Keyword="ComponentType"				Name="Component Type"
 (0070,1803) VERS="3"	VR="SQ"   VM="1"	Keyword="ComponentInputSequence"				Name="Component Input Sequence"
@@ -2784,7 +2841,22 @@
 (0070,1A01) VERS="3"	VR="CS"   VM="1"	Keyword="PresentationAnimationStyle"				Name="Presentation Animation Style"
 (0070,1A03) VERS="3"	VR="FD"   VM="1"	Keyword="RecommendedAnimationRate"				Name="Recommended Animation Rate"
 (0070,1A04) VERS="3"	VR="SQ"   VM="1"	Keyword="AnimationCurveSequence"				Name="Animation Curve Sequence"
-(0070,1A05) VERS="3"	VR="FD"   VM="1"	Keyword="AnimationStepSize"				Name="Animation Step Size"
+(0070,1A05) VERS="3"	VR="FD"   VM="1"	Keyword="AnimationStepSize"						Name="Animation Step Size"
+(0070,1A06) VERS="3"	VR="FD"   VM="1"	Keyword="SwivelRange"		Name="Swivel Range"
+(0070,1A07) VERS="3"	VR="OD"   VM="1"	Keyword="VolumetricCurveUpDirections"		Name="Volumetric Curve Up Directions"
+(0070,1A08) VERS="3"	VR="SQ"   VM="1"	Keyword="VolumeStreamSequence"		Name="Volume Stream Sequence"
+(0070,1A09) VERS="3"	VR="LO"   VM="1"	Keyword="RGBATransferFunctionDescription"		Name="RGBA Transfer Function Description"
+(0070,1B01) VERS="3"	VR="SQ"   VM="1"	Keyword="AdvancedBlendingSequence"				Name="Advanced Blending Sequence"
+(0070,1B02) VERS="3"	VR="US"   VM="1"	Keyword="BlendingInputNumber"					Name="Blending Input Number"
+(0070,1B03) VERS="3"	VR="SQ"   VM="1"	Keyword="BlendingDisplayInputSequence"			Name="Blending Display Input Sequence"
+(0070,1B04) VERS="3"	VR="SQ"   VM="1"	Keyword="BlendingDisplaySequence"				Name="Blending Display Sequence"
+(0070,1B06) VERS="3"	VR="CS"   VM="1"	Keyword="BlendingMode"							Name="Blending Mode"
+(0070,1B07) VERS="3"	VR="CS"   VM="1"	Keyword="TimeSeriesBlending"					Name="Time Series Blending"
+(0070,1B08) VERS="3"	VR="CS"   VM="1"	Keyword="GeometryForDisplay"					Name="Geometry for Display"
+(0070,1B11) VERS="3"	VR="SQ"   VM="1"	Keyword="ThresholdSequence"						Name="Threshold Sequence"
+(0070,1B12) VERS="3"	VR="SQ"   VM="1"	Keyword="ThresholdValueSequence"				Name="Threshold Value Sequence"
+(0070,1B13) VERS="3"	VR="CS"   VM="1"	Keyword="ThresholdType"							Name="Threshold Type"
+(0070,1B14) VERS="3"	VR="FD"   VM="1"	Keyword="ThresholdValue"						Name="Threshold Value"
 (0072,0002) VERS="3"	VR="SH"   VM="1"	Keyword="HangingProtocolName"				Name="Hanging Protocol Name"
 (0072,0004) VERS="3"	VR="LO"   VM="1"	Keyword="HangingProtocolDescription"			Name="Hanging Protocol Description"
 (0072,0006) VERS="3"	VR="CS"   VM="1"	Keyword="HangingProtocolLevel"				Name="Hanging Protocol Level"
@@ -2912,6 +2984,7 @@
 (0074,1002) VERS="3"	VR="SQ"   VM="1"	Keyword="ProcedureStepProgressInformationSequence"					Name="Procedure Step Progress Information Sequence"
 (0074,1004) VERS="3"	VR="DS"   VM="1"	Keyword="ProcedureStepProgress"										Name="Procedure Step Progress"
 (0074,1006) VERS="3"	VR="ST"   VM="1"	Keyword="ProcedureStepProgressDescription"							Name="Procedure Step Progress Description"
+(0074,1007) VERS="3"	VR="SQ"   VM="1"	Keyword="ProcedureStepProgressParametersSequence"					Name="Procedure Step Progress Parameters Sequence"
 (0074,1008) VERS="3"	VR="SQ"   VM="1"	Keyword="ProcedureStepCommunicationsURISequence"					Name="Procedure Step Communications URI Sequence"
 (0074,100a) VERS="3"	VR="UR"   VM="1"	Keyword="ContactURI"												Name="Contact URI"
 (0074,100c) VERS="3"	VR="LO"   VM="1"	Keyword="ContactDisplayName"										Name="Contact Display Name"
@@ -3466,6 +3539,7 @@
 (300A,007B) VERS="3"	VR="LT"   VM="1"	Keyword="FractionPattern"			Name="Fraction Pattern"
 (300A,0080) VERS="3"	VR="IS"   VM="1"	Keyword="NumberOfBeams"				Name="Number of Beams"
 (300A,0082) VERS="3"	VR="DS"   VM="3"	Keyword="BeamDoseSpecificationPoint"		Name="Beam Dose Specification Point"
+(300A,0083) VERS="3"	VR="UI"   VM="1"	Keyword="ReferencedDoseReferenceUID"		Name="Referenced Dose Reference UID"
 (300A,0084) VERS="3"	VR="DS"   VM="1"	Keyword="BeamDose"				Name="Beam Dose"
 (300A,0086) VERS="3"	VR="DS"   VM="1"	Keyword="BeamMeterset"				Name="Beam Meterset"
 (300A,0088) VERS="RET"	VR="FL"   VM="1"	Keyword="BeamDosePointDepth"				Name="Beam Dose Point Depth"
@@ -3479,6 +3553,7 @@
 (300A,0090) VERS="3"	VR="CS"   VM="1"	Keyword="BeamDoseType"						Name="Beam Dose Type"
 (300A,0091) VERS="3"	VR="DS"   VM="1"	Keyword="AlternateBeamDose"					Name="Alternate Beam Dose"
 (300A,0092) VERS="3"	VR="CS"   VM="1"	Keyword="AlternateBeamDoseType"				Name="Alternate Beam Dose Type"
+(300A,0093) VERS="3"	VR="CS"   VM="1"	Keyword="DepthValueAveragingFlag"				Name="Depth Value Averaging Flag"
 (300A,00A0) VERS="3"	VR="IS"   VM="1"	Keyword="NumberOfBrachyApplicationSetups"	Name="Number of Brachy Application Setups"
 (300A,00A2) VERS="3"	VR="DS"   VM="3"	Keyword="BrachyApplicationSetupDoseSpecificationPoint"	Name="Brachy Application Setup Dose Specification Point"
 (300A,00A4) VERS="3"	VR="DS"   VM="1"	Keyword="BrachyApplicationSetupDose"		Name="Brachy Application Setup Dose"
@@ -3656,6 +3731,10 @@
 (300A,0266) VERS="3"	VR="LO"   VM="1"	Keyword="BrachyAccessoryDeviceName"		Name="Brachy Accessory Device Name"
 (300A,026A) VERS="3"	VR="DS"   VM="1"	Keyword="BrachyAccessoryDeviceNominalThickness"	Name="Brachy Accessory Device Nominal Thickness"
 (300A,026C) VERS="3"	VR="DS"   VM="1"	Keyword="BrachyAccessoryDeviceNominalTransmission"	Name="Brachy Accessory Device Nominal Transmission"
+(300A,0271) VERS="3"	VR="DS"   VM="1"	Keyword="ChannelEffectiveLength"	Name="Channel Effective Length"
+(300A,0272) VERS="3"	VR="DS"   VM="1"	Keyword="ChannelInnerLength"		Name="Channel Inner Length"
+(300A,0273) VERS="3"	VR="SH"   VM="1"	Keyword="AfterloaderChannelID"		Name="Afterloader Channel ID"
+(300A,0274) VERS="3"	VR="DS"   VM="1"	Keyword="SourceApplicatorTipLength"	Name="Source Applicator Tip Length"
 (300A,0280) VERS="3"	VR="SQ"   VM="1"	Keyword="ChannelSequence"			Name="Channel Sequence"
 (300A,0282) VERS="3"	VR="IS"   VM="1"	Keyword="ChannelNumber"				Name="Channel Number"
 (300A,0284) VERS="3"	VR="DS"   VM="1"	Keyword="ChannelLength"				Name="Channel Length"
diff --git a/libsrc/standard/elmdict/elscint.tpl b/libsrc/standard/elmdict/elscint.tpl
index 442b1b6..c005938 100755
--- a/libsrc/standard/elmdict/elscint.tpl
+++ b/libsrc/standard/elmdict/elscint.tpl
@@ -165,6 +165,7 @@
 (07A1,0036) VERS="EL1"	VR="AE"   VM="1"	Owner="ELSCINT1"	Keyword="?"					Name="?"
 (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,0042) VERS="EL1"	VR="SH"   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="?"
@@ -205,13 +206,15 @@
 (07A3,0034) VERS="EL1"	VR="SH"   VM="1"	Owner="ELSCINT1"	Keyword="?"					Name="?" 
 (07A3,0043) VERS="EL1"	VR="DS"   VM="1-n"	Owner="ELSCINT1"	Keyword="?"					Name="?"
 (07A3,0055) VERS="EL1"	VR="SH"   VM="1"	Owner="ELSCINT1"	Keyword="?"					Name="?"
-(07A3,0061) VERS="EL1"	VR="LT"   VM="1"	Owner="ELSCINT1"	Keyword="?"					Name="?" 
+(07A3,005C) VERS="EL1"	VR="ST"   VM="1"	Owner="ELSCINT1"	Keyword="?"					Name="?"
+(07A3,0061) VERS="EL1"	VR="LT"   VM="1"	Owner="ELSCINT1"	Keyword="?"					Name="?"
 (07A3,0062) VERS="EL1"	VR="SQ"   VM="1"	Owner="ELSCINT1"	Keyword="?"					Name="?" 
 (07A3,0063) VERS="EL1"	VR="SQ"   VM="1"	Owner="ELSCINT1"	Keyword="?"					Name="?" 
 (07A3,0064) VERS="EL1"	VR="IS"   VM="1-n"	Owner="ELSCINT1"	Keyword="?"					Name="?" 
 (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,008F) VERS="EL1"	VR="CS"   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="?"
@@ -241,6 +244,8 @@
 (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="?"
+(07A5,00AE) VERS="EL1"	VR="IS"   VM="1"	Owner="ELSCINT1"	Keyword="?"					Name="?"
+(07A5,00C8) VERS="EL1"	VR="CS"   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 d9572ab..f2fc415 100755
--- a/libsrc/standard/elmdict/gems.tpl
+++ b/libsrc/standard/elmdict/gems.tpl
@@ -1529,6 +1529,7 @@
 (0045,0031) VERS="GEM"	VR="CS"	VM="1"	Owner="GEMS_HELIOS_01"	Keyword="AvgHeartRateForImage"			Name="AvgHeartRateForImage"
 (0045,0032) VERS="GEM"	VR="FL"	VM="1"	Owner="GEMS_HELIOS_01"	Keyword="TemporalResolution"			Name="TemporalResolution"
 (0045,0033) VERS="GEM"	VR="CS"	VM="1"	Owner="GEMS_HELIOS_01"	Keyword="PctRpeakDelay"				Name="PctRpeakDelay"
+(0045,0034) VERS="GEM"	VR="CS"	VM="1"	Owner="GEMS_HELIOS_01"	Keyword="?"							Name="?"
 (0045,0036) VERS="GEM"	VR="CS"	VM="1"	Owner="GEMS_HELIOS_01"	Keyword="EkgFullMaStartPhase"					Name="EkgFullMaStartPhase"
 (0045,0037) VERS="GEM"	VR="CS"	VM="1"	Owner="GEMS_HELIOS_01"	Keyword="EkgFullMaEndPhase"					Name="EkgFullMaEndPhase"
 (0045,0038) VERS="GEM"	VR="CS"	VM="1"	Owner="GEMS_HELIOS_01"	Keyword="EkgModulationMaxMa"					Name="EkgModulationMaxMa"
@@ -1604,6 +1605,8 @@
 (0049,000A) VERS="GEM"  VR="ST"   VM="1"	Owner="GEMS_CT_CARDIAC_001"	Keyword="EkgMonitorType"			Name="EkgMonitorType"
 (0049,000B) VERS="GEM"  VR="CS"   VM="1"	Owner="GEMS_CT_CARDIAC_001"	Keyword="NumReconSectors"			Name="NumReconSectors"
 (0049,000C) VERS="GEM"  VR="FL"   VM="256"	Owner="GEMS_CT_CARDIAC_001"	Keyword="RpeakTimeStamps"			Name="RpeakTimeStamps"
+(0049,0016) VERS="GEM"  VR="SH"   VM="1"	Owner="GEMS_CT_CARDIAC_001"	Keyword="?"							Name="?"
+
 (004B,0001) VERS="GEM"  VR="DS"   VM="1-n"	Owner="GEMS_CT_HINO_01"		Keyword="BeamThickess"				Name="Beam Thickess"
 (004B,0002) VERS="GEM"  VR="DS"   VM="1-n"	Owner="GEMS_CT_HINO_01"		Keyword="RTime"					Name="R Time"
 (004B,0003) VERS="GEM"  VR="IS"   VM="1"	Owner="GEMS_CT_HINO_01"		Keyword="HBCNumber"				Name="HBC Number"
@@ -2068,6 +2071,9 @@
 (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,0068) VERS="GEM"  VR="IS"   VM="1"		Owner="GEHC_CT_ADVAPP_001" 	Keyword="?"									Name="?"
+(0053,006a) VERS="GEM"  VR="IS"   VM="1"		Owner="GEHC_CT_ADVAPP_001" 	Keyword="?"									Name="?"
+(0053,006b) 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="?"
@@ -2201,6 +2207,7 @@
 (0051,000b) VERS="GEM"	VR="FL"   VM="1"	Owner="GEMS_FUNCTOOL_01"	Keyword="BValue"						Name="B-Value"
 (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"
+(0051,000e) VERS="GEM"	VR="SL"   VM="1"	Owner="GEMS_FUNCTOOL_01"	Keyword="?"								Name="?"
 
 (0073,0020) VERS="GEM"  VR="DS"   VM="1"	Owner="GEMS_IDI_01"		Keyword="HeightMapPlaneDistance"					Name="Height Map Plane Distance"
 (0073,0021) VERS="GEM"  VR="DS"   VM="1"	Owner="GEMS_IDI_01"		Keyword="HeightMapPlaneOffset"						Name="Height Map Plane Offset"
diff --git a/libsrc/standard/elmdict/other.tpl b/libsrc/standard/elmdict/other.tpl
index 0a3dc8b..34c7bb3 100755
--- a/libsrc/standard/elmdict/other.tpl
+++ b/libsrc/standard/elmdict/other.tpl
@@ -1129,7 +1129,14 @@
 (0009,0000) VERS="EMG"     VR="LO"   VM="1"	Owner="EMAGEON STUDY HOME"		Keyword="?"		Name="?" 
 (0009,0001) VERS="EMG"     VR="LO"   VM="1"	Owner="EMAGEON STUDY HOME"		Keyword="?"		Name="?" 
 (0009,0000) VERS="EMG"     VR="SQ"   VM="1"	Owner="EMAGEON JPEG2K INFO" 	Keyword="?"		Name="?" 
-(0009,0001) VERS="EMG"     VR="DT"   VM="1"	Owner="EMAGEON JPEG2K INFO" 	Keyword="?"		Name="?" 
+(0009,0001) VERS="EMG"     VR="DT"   VM="1"	Owner="EMAGEON JPEG2K INFO" 	Keyword="?"		Name="?"
+
+(0023,0013) VERS="EMG"     VR="IS"   VM="1"		Owner="EMAGEON JPEG2K INFO" 	Keyword="?"		Name="?"
+(0023,0015) VERS="EMG"     VR="SQ"   VM="1"		Owner="EMAGEON JPEG2K INFO" 	Keyword="?"		Name="?"
+(0023,0016) VERS="EMG"     VR="IS"   VM="1"		Owner="EMAGEON JPEG2K INFO" 	Keyword="?"		Name="?"
+(0023,0017) VERS="EMG"     VR="FL"   VM="1-n"	Owner="EMAGEON JPEG2K INFO" 	Keyword="?"		Name="?"
+(0023,0018) VERS="EMG"     VR="FL"   VM="1-n"	Owner="EMAGEON JPEG2K INFO" 	Keyword="?"		Name="?"
+(0023,0019) VERS="EMG"     VR="IS"   VM="1-n"	Owner="EMAGEON JPEG2K INFO" 	Keyword="?"		Name="?"
 
 (0029,0024) VERS="RWM"     VR="US"   VM="1-n"	Owner="RadWorksMarconi" 	Keyword="KeyFrameIndices"		Name="Key Frame Indices"
 
@@ -2150,33 +2157,53 @@
 
 (0029,0004) VERS="TLM" VR="US"   VM="1"	Owner="TELEMIS"	Keyword="?"	Name="?"
 
-(0117,0010) VERS="UCSF" VR="SQ"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0012) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0014) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0016) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0019) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0020) VERS="UCSF" VR="SQ"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0030) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0031) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0033) VERS="UCSF" VR="TM"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0034) VERS="UCSF" VR="DS"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0035) VERS="UCSF" VR="IS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,003a) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,003b) VERS="UCSF" VR="LT"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0041) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0042) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0043) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0044) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0045) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,0046) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,00a1) VERS="UCSF" VR="US"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,00a2) VERS="UCSF" VR="US"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,00b0) VERS="UCSF" VR="SQ"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,00b1) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,00b2) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,00b3) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,00b4) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
-(0117,00b5) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="?"	Name="?"
+(0117,0010) VERS="UCSF" VR="SQ"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ParameterSequence"				Name="Parameter Sequence"
+(0117,0012) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ParameterType"					Name="Parameter Type"
+(0117,0014) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ParameterName"					Name="Parameter Name"
+(0117,0016) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ParameterDescription"			Name="Parameter Description"
+(0117,0018) VERS="UCSF" VR="DS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="FloatingParameterValue"		Name="Floating Parameter Value"
+(0117,0019) VERS="UCSF" VR="IS"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="IntegerParameterValue"			Name="Integer Parameter Value"
+(0117,001a) VERS="UCSF" VR="LO"   VM="1-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="StringParameterValue"			Name="String Parameter Value"
+(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,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,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"
+(0117,0042) VERS="UCSF" VR="DS"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="VOILPSCenter"					Name="VOILPS Center"
+(0117,0043) VERS="UCSF" VR="DS"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="VOILPSHalfWidth"				Name="VOILPS HalfWidth"
+(0117,0044) VERS="UCSF" VR="DS"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="VOILPSHalfHeight"				Name="VOILPS HalfHeight"
+(0117,0045) VERS="UCSF" VR="DS"   VM="3"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="VOILPSHalfDepth"				Name="VOILPS HalfDepth"
+(0117,0046) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="VOILPSType"					Name="VOILPS Type"
+(0117,0050) VERS="UCSF" VR="US"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ProjectedROINumberOfPixels"	Name="Projected ROI Number of Pixels"
+(0117,0051) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ProjectionAxis"				Name="Projection Axis"
+(0117,0052) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ProjectedROITransposeFlag"		Name="Projected ROI Transpose Flag"
+(0117,0053) VERS="UCSF" VR="US"   VM="3-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ProjectedROIXVertices"			Name="Projected ROI X Vertices"
+(0117,0054) VERS="UCSF" VR="US"   VM="3-n"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="ProjectedROIYVertices"			Name="Projected ROI Y Vertices"
+(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,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,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"
+(0117,00b3) VERS="UCSF" VR="IS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="VoxelCount"					Name="Voxel Count"
+(0117,00b4) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="Volume"						Name="Volume (cc)"
+(0117,00b5) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="Label"							Name="Label"
+(0117,00c0) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="QCType"						Name="QC Type"
+(0117,00c1) VERS="UCSF" VR="LO"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="QCFactor"						Name="QC Factor"
+(0117,00c2) VERS="UCSF" VR="DS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="QCValue"						Name="QC Value"
+(0117,00c3) VERS="UCSF" VR="CS"   VM="1"	Owner="UCSF BIRP PRIVATE CREATOR 011710xx"	Keyword="QCMeaning"						Name="QC Meaning"
+(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"
 
 #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"
@@ -2273,3 +2300,33 @@
 (0031,002d) VERS="NUM" VR="LO"   VM="1"		Owner="NUMACALC-INVENTORY"	Keyword="?"			Name="?"
 (0031,0032) VERS="NUM" VR="LO"   VM="1"		Owner="NUMACALC-INVENTORY"	Keyword="?"			Name="?"
 
+(000d,0002) VERS="MDC" VR="SQ"   VM="1"		Owner="MEDCON"	Keyword="?"			Name="?"
+(000d,0007) VERS="MDC" VR="LO"   VM="1"		Owner="MEDCON"	Keyword="?"			Name="?"
+(000d,0063) VERS="MDC" VR="LT"   VM="1"		Owner="MEDCON"	Keyword="?"			Name="?"
+
+(0863,0010) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0023) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0026) VERS="EOS" VR="UL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0027) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0028) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0032) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0033) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0034) VERS="EOS" VR="FL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0035) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0036) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0037) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0038) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0039) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0040) VERS="EOS" VR="FL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0041) VERS="EOS" VR="FL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0042) VERS="EOS" VR="FL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0043) VERS="EOS" VR="FL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0044) VERS="EOS" VR="FL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0045) VERS="EOS" VR="FL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0046) VERS="EOS" VR="DS"   VM="11"	Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0047) VERS="EOS" VR="SL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0048) VERS="EOS" VR="UL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0049) VERS="EOS" VR="FL"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+(0863,0057) VERS="EOS" VR="CS"   VM="1"		Owner="Biospace Med : EOS Tag"	Keyword="?"			Name="?"
+
+
diff --git a/libsrc/standard/elmdict/philips.tpl b/libsrc/standard/elmdict/philips.tpl
index ee23426..97b6919 100644
--- a/libsrc/standard/elmdict/philips.tpl
+++ b/libsrc/standard/elmdict/philips.tpl
@@ -1825,7 +1825,9 @@
 (200d,0021) VERS=""		VR="LO"   VM="1"	Owner="Philips US Imaging DD 034"	Keyword="?"		Name="?"
 (200d,0021) VERS=""		VR="IS"   VM="1"	Owner="Philips US Imaging DD 043"	Keyword="?"		Name="?"
 (200d,0021) VERS=""		VR="FD"   VM="1"	Owner="Philips US Imaging DD 113"	Keyword="?"		Name="?"
+(200d,0022) VERS=""		VR="IS"   VM="1"	Owner="Philips US Imaging DD 033"	Keyword="?"		Name="?"
 (200d,0022) VERS=""		VR="LO"   VM="1"	Owner="Philips US Imaging DD 034"	Keyword="?"		Name="?"
+(200d,0022) VERS=""		VR="LO"   VM="1"	Owner="Philips US Imaging DD 041"	Keyword="?"		Name="?"
 (200d,0022) VERS=""		VR="UL"   VM="1"	Owner="Philips US Imaging DD 113"	Keyword="?"		Name="?"
 (200d,0023) VERS=""		VR="LO"   VM="1"	Owner="Philips US Imaging DD 034"	Keyword="?"		Name="?"
 (200d,0023) VERS=""		VR="LO"   VM="1"	Owner="Philips US Imaging DD 041"	Keyword="?"		Name="?"
diff --git a/libsrc/standard/iodcomp/mr.tpl b/libsrc/standard/iodcomp/mr.tpl
index 4527b23..3cfdb9b 100755
--- a/libsrc/standard/iodcomp/mr.tpl
+++ b/libsrc/standard/iodcomp/mr.tpl
@@ -261,3 +261,36 @@ CompositeIOD="PrivatePixelMedLegacyConvertedEnhancedMRImage"	Condition="PrivateP
 	InformationEntityEnd
 CompositeIODEnd
 
+CompositeIOD="TractographyResults" Condition="TractographyResultsInstance"
+	InformationEntity="File"
+		Module="FileMetaInformation"							Usage="C"	Condition="NeedModuleFileMetaInformation"
+	InformationEntityEnd
+	InformationEntity="Patient"
+		Module="Patient"										Usage="M"
+		Module="Specimen"										Usage="U"	Condition="NeedModuleSpecimen"
+		Module="ClinicalTrialSubject"							Usage="U"	Condition="NeedModuleClinicalTrialSubject"
+	InformationEntityEnd
+	InformationEntity="Study"
+		Module="GeneralStudy"									Usage="M"
+		Module="PatientStudy"									Usage="U"	# no condition ... all attributes type 3
+		Module="ClinicalTrialStudy"								Usage="U"	Condition="NeedModuleClinicalTrialStudy"
+	InformationEntityEnd
+	InformationEntity="Series"
+		Module="GeneralSeries"									Usage="M"
+		Module="TractographyResultsSeries"						Usage="M"
+		Module="ClinicalTrialSeries"							Usage="U"	Condition="NeedModuleClinicalTrialSeries"
+	InformationEntityEnd
+	InformationEntity="FrameOfReference"
+		Module="FrameOfReference"								Usage="M"
+	InformationEntityEnd
+	InformationEntity="Equipment"
+		Module="GeneralEquipment"								Usage="M"
+		Module="EnhancedGeneralEquipment"						Usage="M"
+	InformationEntityEnd
+	InformationEntity="TractographyResults"
+		Module="TractographyResults"							Usage="M"
+		Module="CommonInstanceReference"						Usage="M"
+		Module="SOPCommon"										Usage="M"
+	InformationEntityEnd
+CompositeIODEnd
+
diff --git a/libsrc/standard/iodcomp/vl.tpl b/libsrc/standard/iodcomp/vl.tpl
index 1eb11b3..cff0be9 100755
--- a/libsrc/standard/iodcomp/vl.tpl
+++ b/libsrc/standard/iodcomp/vl.tpl
@@ -464,7 +464,7 @@ CompositeIOD="VLWholeSlideMicroscopyImage"		Condition="VLWholeSlideMicroscopyIma
 		Module="WholeSlideMicroscopyImage"					Usage="M"
 		Module="OpticalPath"								Usage="M"
 		Module="MultiResolutionNavigation"					Usage="C"	Condition="ImageTypeValue3Localizer"
-		Module="SlideLabel"									Usage="C"	Condition="ImageTypeValue3Label"
+		Module="SlideLabel"									Usage="C"	Condition="NeedModuleSlideLabel"
 		Module="SOPCommon"									Usage="M"
 		Module="CommonInstanceReference"					Usage="M"
 		Module="FrameExtraction"							Usage="C"	Condition="NeedModuleFrameExtraction"
diff --git a/libsrc/standard/module/acqctx.tpl b/libsrc/standard/module/acqctx.tpl
index 332869e..8d247e2 100755
--- a/libsrc/standard/module/acqctx.tpl
+++ b/libsrc/standard/module/acqctx.tpl
@@ -1,6 +1,7 @@
 Module="AcquisitionContext"
 	Sequence="AcquisitionContextSequence"			Type="2"	VM="0-n"
 		Name="ValueType"							Type="3"	StringDefinedTerms="AcquisitionContextValueTypes"
+		Name="ObservationDateTime"					Type="3"
 		Sequence="ConceptNameCodeSequence"			Type="1"	VM="1"	# should check for 1 and only 1 item present
 			InvokeMacro="CodeSequenceMacro"
 		SequenceEnd
diff --git a/libsrc/standard/module/base.tpl b/libsrc/standard/module/base.tpl
index 6f0fee5..a0a8e2a 100755
--- a/libsrc/standard/module/base.tpl
+++ b/libsrc/standard/module/base.tpl
@@ -107,6 +107,7 @@ MacroEnd
 
 DefineMacro="ContentItemMacro"
 	Name="ValueType"						Type="1"	StringDefinedTerms="ContentItemValueTypes"
+	Name="ObservationDateTime"				Type="3"
 	Sequence="ConceptNameCodeSequence"		Type="1"	VM="1"
 		InvokeMacro="CodeSequenceMacro"
 	SequenceEnd
@@ -454,7 +455,6 @@ Module="Patient"
 		InvokeMacro="SOPInstanceReferenceMacro"
 	SequenceEnd
 	Name="PatientBirthTime"					Type="3"
-	Name="OtherPatientIDs"					Type="3"
 	Sequence="OtherPatientIDsSequence"		Type="3"	VM="1-n"
 		Name="PatientID"					Type="1"
 		InvokeMacro="IssuerOfPatientIDMacro"
@@ -586,6 +586,8 @@ ModuleEnd
 Module="ClinicalTrialStudy"
 	Name="ClinicalTrialTimePointID"					Type="2"
 	Name="ClinicalTrialTimePointDescription"		Type="3"
+	Name="LongitudinalTemporalOffsetFromEvent"		Type="3"
+	Name="LongitudinalTemporalEventType"			Type="1C"	Condition="LongitudinalTemporalOffsetFromEventIsPresent"	StringDefinedTerms="LongitudinalTemporalEventType"
 	Sequence="ConsentForClinicalTrialUseSequence"	Type="3"	VM="1-n"
 		Name="DistributionType"						Type="1C"	Condition="ConsentForDistributionFlagIsYesOrWithdrawn"	StringEnumValues="DistributionType"
 		Name="ClinicalTrialProtocolID"				Type="1C"	NoCondition=""
@@ -1191,7 +1193,7 @@ Module="MultiFrameDimension"
 		Name="DimensionIndexPrivateCreator"		Type="1C"	NoCondition="" # too hard to check
 		Name="FunctionalGroupPointer"			Type="1C"	Condition="DimensionIndexPointerIsNotFunctionalGroup"
 		Name="FunctionalGroupPrivateCreator"	Type="1C"	NoCondition="" # too hard to check
-		Name="DimensionOrganizationUID"			Type="1C" 	NoCondition="" # too hard to check number of items
+		Name="DimensionOrganizationUID"			Type="1"
 		Name="DimensionDescriptionLabel"		Type="3" 
 	SequenceEnd
 ModuleEnd
@@ -1404,7 +1406,7 @@ Module="MRImage"
 	Name="SequenceVariant"				Type="1"	StringDefinedTerms="SequenceVariant"
 	Name="ScanOptions"					Type="2"	StringDefinedTerms="ScanOptions"
 	Name="MRAcquisitionType"			Type="2"	StringEnumValues="MRAcquisitionType"
-	Name="RepetitionTime"				Type="2C"	Condition="MRIsNotEchoPlanarOrIsSegmentedKSpace"
+	Name="RepetitionTime"				Type="2C"	Condition="MRIsNotEchoPlanarOrIsSegmentedKSpace" mbpo="true"
 	Name="EchoTime"						Type="2"	NotZeroWarning=""
 	Name="EchoTrainLength"				Type="2"	NotZeroWarning=""
 	Name="InversionTime"				Type="2C"	Condition="MRIsInversionRecovery"	NotZeroWarning=""
@@ -1448,6 +1450,8 @@ Module="MRImage"
 	InvokeMacro="OptionalViewAndSliceProgressionDirectionMacro"
 	Name="IsocenterPosition"			Type="3"
 	Name="B1rms"						Type="3"
+	Verify="RescaleIntercept"							Condition="RescaleInterceptPresentAndNotIdentity"	ThenWarningMessage="Non-identity Modality LUT not expected to be present in standard MR IOD - may cause windowing problems" ShowValueWithMessage="true"
+	Verify="RescaleSlope"								Condition="RescaleSlopePresentAndNotIdentity"		ThenWarningMessage="Non-identity Modality LUT not expected to be present in standard MR IOD - may cause windowing problems" ShowValueWithMessage="true"
 ModuleEnd
 
 Module="NMPETPatientOrientation"
@@ -1965,6 +1969,8 @@ DefineMacro="VOILUTMacro"	InformationEntity="Frame"
 	Name="WindowCenter"									Type="1C"	Condition="MonochromeAndVOILUTSequenceNotPresent" mbpo="true"
 	Name="WindowWidth"									Type="1C"	Condition="WindowCenterPresent"	NotZeroError=""
 	Verify="WindowWidth"											Condition="WindowWidthIsNegative"	ThenErrorMessage="Not permitted to be negative" ShowValueWithMessage="true"
+	Verify="WindowWidth"											Condition="WindowWidthIsLessThanOneAndNotExact"	ThenErrorMessage="Not permitted to be < 1 unless VOI LUT Function is LINEAR_EXACT or SIGMOID" ShowValueWithMessage="true"
+	Verify="WindowWidth"											Condition="WindowWidthIsZeroAndSigmoid"	ThenErrorMessage="Not permitted to be 0 when VOI LUT Function is SIGMOID" ShowValueWithMessage="true"
 	Name="WindowCenterWidthExplanation"					Type="3"
 	Name="VOILUTFunction"								Type="3"	StringDefinedTerms="VOILUTFunction"
 	Verify="PhotometricInterpretation"					Condition="PhotometricInterpretationIsGrayscaleOrAbsent"	ElseWarningMessage="VOI LUT Module (Window Center and Width) not appropriate for non-grayscale images" ShowValueWithMessage="true"
@@ -2047,6 +2053,10 @@ Module="SOPCommon"
 		Name="CodingSchemeName"							Type="3"
 		Name="CodingSchemeVersion"						Type="3"
 		Name="CodingSchemeResponsibleOrganization"		Type="3"
+		Sequence="CodingSchemeResourcesSequence"		Type="3"	VM="1-n"
+			Name="CodingSchemeURLType"					Type="1"	StringDefinedTerms="CodingSchemeURLType"
+			Name="CodingSchemeURL"						Type="1"
+		SequenceEnd
 	SequenceEnd
 	Sequence="ContextGroupIdentificationSequence"		Type="3"	VM="1-n"
 		Name="ContextIdentifier"						Type="1"
@@ -2512,8 +2522,15 @@ Module="EncapsulatedDocument"
 	SequenceEnd
 	Name="VerificationFlag"										Type="3"	StringEnumValues="VerificationFlag"
 	Name="HL7InstanceIdentifier"								Type="1C"	Condition="EncapsulatedCDAInstance"
+	Sequence="PredecessorDocumentsSequence"						Type="3"	VM="1-n"
+		InvokeMacro="HierarchicalSOPInstanceReferenceMacro"
+	SequenceEnd
+	Sequence="IdenticalDocumentsSequence"						Type="3"	VM="1-n"
+		InvokeMacro="HierarchicalSOPInstanceReferenceMacro"
+	SequenceEnd
 	Name="MIMETypeOfEncapsulatedDocument"						Type="1"
 	Name="ListOfMIMETypes"										Type="1C"	NoCondition=""
+	Name="ImageLaterality"										Type="3"	StringEnumValues="ImageLaterality"
 	Name="EncapsulatedDocument"									Type="1"
 ModuleEnd
 
@@ -2752,6 +2769,7 @@ Module="MultiFrameFunctionalGroupsForParametricMap"
 		InvokeMacro="RespiratorySynchronizationMacro"		Condition="RespiratorySynchronizationMacroOKInSharedFunctionalGroupSequence"
 		InvokeMacro="ParametricMapFrameTypeMacro"			Condition="ParametricMapFrameTypeSequenceNotInPerFrameFunctionalGroupSequence"
 		InvokeMacro="StoredValueColorRangeMacro"			Condition="StoredValueColorRangeSequenceNotInPerFrameFunctionalGroupSequenceAndPixelPresentationIsColorRange"
+		InvokeMacro="UnassignedSharedConvertedAttributesMacro"	Condition="UnassignedSharedConvertedAttributesMacroPresentInSharedFunctionalGroupSequence"
 	SequenceEnd
 	Sequence="PerFrameFunctionalGroupsSequence"	Type="1"	VM="1-n"
 		InvokeMacro="PixelMeasuresMacro"					Condition="PixelMeasuresSequenceNotInSharedFunctionalGroupSequence"
@@ -2769,6 +2787,7 @@ Module="MultiFrameFunctionalGroupsForParametricMap"
 		InvokeMacro="RespiratorySynchronizationMacro"		Condition="RespiratorySynchronizationMacroOKInPerFrameFunctionalGroupSequence"
 		InvokeMacro="ParametricMapFrameTypeMacro"			Condition="ParametricMapFrameTypeSequenceNotInSharedFunctionalGroupSequence"
 		InvokeMacro="StoredValueColorRangeMacro"			Condition="StoredValueColorRangeSequenceNotInSharedFunctionalGroupSequenceAndPixelPresentationIsColorRange"
+		InvokeMacro="UnassignedPerFrameConvertedAttributesMacro"	Condition="UnassignedPerFrameConvertedAttributesMacroPresentInPerFrameFunctionalGroupSequence"
 	SequenceEnd
 ModuleEnd
 
diff --git a/libsrc/standard/module/ct.tpl b/libsrc/standard/module/ct.tpl
index c5cdb5a..9c6d202 100644
--- a/libsrc/standard/module/ct.tpl
+++ b/libsrc/standard/module/ct.tpl
@@ -288,7 +288,7 @@ Module="MultiFrameFunctionalGroupsForLegacyConvertedEnhancedCTImage"
 		InvokeMacro="CTImageFrameTypeMacro"					Condition="CTImageFrameTypeSequenceNotInSharedFunctionalGroupSequence"
 		InvokeMacro="CTPixelValueTransformationMacro"		Condition="PixelValueTransformationSequenceOKInPerFrameFunctionalGroupSequence"
 		InvokeMacro="UnassignedPerFrameConvertedAttributesMacro"
-		InvokeMacro="ImageFrameConversionSourceMacro"
+		InvokeMacro="ImageFrameConversionSourceMacro"		Condition="ImageFrameConversionSourceMacroPresentInPerFrameFunctionalGroupSequence"
 	SequenceEnd
 ModuleEnd
 
diff --git a/libsrc/standard/module/dx.tpl b/libsrc/standard/module/dx.tpl
index 0fc394d..60df47b 100755
--- a/libsrc/standard/module/dx.tpl
+++ b/libsrc/standard/module/dx.tpl
@@ -20,6 +20,7 @@ Module="XRayAcquisitionDose"
 	Name="RelativeXRayExposure"					Type="3"	NotZeroWarning=""
 	Name="EntranceDose"							Type="3"	NotZeroWarning=""
 	Name="EntranceDoseInmGy"					Type="3"	NotZeroWarning=""
+	Name="EntranceDoseDerivation"				Type="3"	StringEnumValues="EntranceDoseDerivation"
 	Name="ExposedArea"							Type="3"
 	Name="DistanceSourceToEntrance"				Type="3"	NotZeroWarning=""
 	Name="CommentsOnRadiationDose"				Type="3"
@@ -458,6 +459,7 @@ Module="BreastTomosynthesisAcquisition"
 		Name="HalfValueLayer"								Type="1"	NotZeroWarning=""
 		Name="OrganDose"									Type="3"	NotZeroWarning=""
 		Name="EntranceDoseInmGy"							Type="3"	NotZeroWarning=""
+		Name="EntranceDoseDerivation"						Type="3"	StringEnumValues="EntranceDoseDerivation"
 		Name="FocalSpots"									Type="1"
 		Name="DetectorBinning"								Type="1C"	NoCondition=""	# real world
 		Name="DetectorTemperature"							Type="1"	NotZeroWarning=""
@@ -479,6 +481,7 @@ Module="BreastTomosynthesisAcquisition"
 			Name="RelativeXRayExposure"						Type="1"	NotZeroWarning=""
 			Name="OrganDose"								Type="3"	NotZeroWarning=""
 			Name="EntranceDoseInmGy"						Type="3"	NotZeroWarning=""
+			Name="EntranceDoseDerivation"					Type="3"	StringEnumValues="EntranceDoseDerivation"
 			InvokeMacro="ExposureIndexMacro"
 			Name="IrradiationEventUID"						Type="3"
 		SequenceEnd
@@ -547,6 +550,7 @@ Module="EnhancedMammographyImage"
 	Verify="LossyImageCompressionMethod"							Condition="LossyImageCompressionMethodInconsistentWithTransferSyntax"	ThenWarningMessage="method inconsistent with transfer syntax" ShowValueWithMessage="true"
 	Name="OrganDose"									Type="1"
 	Name="EntranceDoseInmGy"							Type="1"
+	Name="EntranceDoseDerivation"						Type="3"	StringEnumValues="EntranceDoseDerivation"
 	Name="TypeOfDetectorMotion"							Type="1"	StringDefinedTerms="MammographyPositionerAndDetectorMotion"
 	Sequence="IconImageSequence"						Type="3"	VM="1"
 		InvokeMacro="IconImageSequenceMacro"
@@ -587,6 +591,7 @@ DefineMacro="BreastXRayAcquisitionDoseMacro"
 		Name="HalfValueLayer"							Type="3"
 		Name="OrganDose"								Type="1"
 		Name="EntranceDoseInmGy"						Type="1"
+		Name="EntranceDoseDerivation"					Type="3"	StringEnumValues="EntranceDoseDerivation"
 	SequenceEnd
 MacroEnd
 
diff --git a/libsrc/standard/module/mr.tpl b/libsrc/standard/module/mr.tpl
index 0bcbe4d..c512c27 100755
--- a/libsrc/standard/module/mr.tpl
+++ b/libsrc/standard/module/mr.tpl
@@ -520,7 +520,7 @@ Module="RawData"
 	Sequence="ConceptNameCodeSequence"				Type="3"	VM="1"
 		InvokeMacro="CodeSequenceMacro"
 	SequenceEnd
-
+	Name="ImageLaterality"							Type="3"	StringEnumValues="ImageLaterality"
 	Name="CreatorVersionUID"						Type="1"
 	Sequence="ReferencedInstanceSequence"			Type="3"	VM="1-n"
 		InvokeMacro="ImageSOPInstanceReferenceMacro"
@@ -572,7 +572,7 @@ Module="MultiFrameFunctionalGroupsForLegacyConvertedEnhancedMRImage"
 		InvokeMacro="RespiratorySynchronizationMacro"		Condition="RespiratorySynchronizationMacroOKInPerFrameFunctionalGroupSequence"
 		InvokeMacro="MRImageFrameTypeMacro"					Condition="MRImageFrameTypeSequenceNotInSharedFunctionalGroupSequence"
 		InvokeMacro="UnassignedPerFrameConvertedAttributesMacro"
-		InvokeMacro="ImageFrameConversionSourceMacro"
+		InvokeMacro="ImageFrameConversionSourceMacro"		Condition="ImageFrameConversionSourceMacroPresentInPerFrameFunctionalGroupSequence"
 	SequenceEnd
 ModuleEnd
 
@@ -615,4 +615,90 @@ Module="MultiFrameFunctionalGroupsForPrivatePixelMedLegacyConvertedEnhancedMRIma
 ModuleEnd
 
 
+Module="TractographyResultsSeries"
+	Name="Modality"										Type="1"	StringEnumValues="MRModality"
+	Name="SeriesNumber"									Type="1"
+	Sequence="ReferencedPerformedProcedureStepSequence"	Type="1C"	VM="1"	Condition="SeriesNeedReferencedPerformedProcedureStepSequence"
+		InvokeMacro="SOPInstanceReferenceMacro"
+	SequenceEnd
+ModuleEnd
+
+Module="TractographyResults"
+	InvokeMacro="ContentIdentificationMacro"
+	Name="ContentDate"									Type="1"
+	Name="ContentTime"									Type="1"
+	Sequence="TrackSetSequence"							Type="1"	VM="1-n"
+		Name="TrackSetNumber"							Type="1"
+		Name="TrackSetLabel"							Type="1"
+		Name="TrackSetDescription"						Type="3"
+		Sequence="TrackSetAnatomicalTypeCodeSequence"	Type="1"	VM="1"
+			InvokeMacro="CodeSequenceMacro"
+			Sequence="ModifierCodeSequence"				Type="3"	VM="1-n"
+				InvokeMacro="CodeSequenceMacro"
+			SequenceEnd
+		SequenceEnd
+		Sequence="TrackSequence"						Type="1"	VM="1-n"
+			Name="PointCoordinatesData"					Type="1"
+			Name="RecommendedDisplayCIELabValueList"	Type="1C"	Condition="NeedRecommendedDisplayCIELabValueListInTrackSequence"
+			Name="RecommendedDisplayCIELabValue"		Type="1C"	Condition="NeedRecommendedDisplayCIELabValueInTrackSequence"
+		SequenceEnd
+		Name="RecommendedDisplayCIELabValue"			Type="1C"	Condition="NeedRecommendedDisplayCIELabValueInTrackSetSequence"
+		Name="RecommendedLineThickness"					Type="3"
+		Sequence="MeasurementsSequence"					Type="3"	VM="1-n"
+			Sequence="ConceptNameCodeSequence"			Type="1"	VM="1"
+				InvokeMacro="CodeSequenceMacro"
+			SequenceEnd
+			Sequence="MeasurementUnitsCodeSequence"		Type="1"	VM="1"
+				InvokeMacro="CodeSequenceMacro"
+			SequenceEnd
+			Sequence="MeasurementValuesSequence"		Type="1"	VM="1-n"
+				Name="FloatingPointValues"				Type="1"
+				Name="TrackPointIndexList"				Type="1C"	NoCondition=""
+			SequenceEnd
+		SequenceEnd
+		Sequence="TrackStatisticsSequence"				Type="3"	VM="1-n"
+			Sequence="ConceptNameCodeSequence"			Type="1"	VM="1"
+				InvokeMacro="CodeSequenceMacro"
+			SequenceEnd
+			Sequence="ModifierCodeSequence"				Type="1"	VM="1"
+				InvokeMacro="CodeSequenceMacro"
+			SequenceEnd
+			Sequence="MeasurementUnitsCodeSequence"		Type="1"	VM="1"
+				InvokeMacro="CodeSequenceMacro"
+			SequenceEnd
+			Name="FloatingPointValues"					Type="1"
+		SequenceEnd
+		Sequence="TrackSetStatisticsSequence"			Type="3"	VM="1-n"
+			InvokeMacro="TableSummaryStatisticsMacro"
+		SequenceEnd
+		Sequence="DiffusionAcquisitionCodeSequence"		Type="3"	VM="1"
+			InvokeMacro="CodeSequenceMacro"
+		SequenceEnd
+		Sequence="DiffusionModelCodeSequence"			Type="1"	VM="1"
+			InvokeMacro="CodeSequenceMacro"
+		SequenceEnd
+		Sequence="TrackingAlgorithmIdentificationSequence"	Type="1"	VM="1-n"
+			InvokeMacro="AlgorithmIdentificationMacro"
+		SequenceEnd
+	SequenceEnd
+
+	Sequence="ReferencedInstanceSequence"				Type="1C"	VM="1"
+		InvokeMacro="ImageSOPInstanceReferenceMacro"
+	SequenceEnd
+ModuleEnd
+
+DefineMacro="TableSummaryStatisticsMacro"
+	Sequence="ConceptNameCodeSequence"							Type="1"	VM="1"
+		InvokeMacro="CodeSequenceMacro"
+	SequenceEnd
+	Sequence="ModifierCodeSequence"								Type="1"	VM="1"
+		InvokeMacro="CodeSequenceMacro"
+	SequenceEnd
+	Sequence="MeasurementUnitsCodeSequence"						Type="1"	VM="1"
+		InvokeMacro="CodeSequenceMacro"
+	SequenceEnd
+	Name="FloatingPointValue"									Type="1"
+MacroEnd
+
+
 
diff --git a/libsrc/standard/module/pet.tpl b/libsrc/standard/module/pet.tpl
index b622958..f46fba0 100755
--- a/libsrc/standard/module/pet.tpl
+++ b/libsrc/standard/module/pet.tpl
@@ -185,7 +185,6 @@ Module="MultiFrameFunctionalGroupsForLegacyConvertedEnhancedPETImage"
 		InvokeMacro="IrradiationEventIdentificationMacro"	Condition="IrradiationEventIdentificationMacroOKInSharedFunctionalGroupSequence"
 		InvokeMacro="PETFrameTypeMacro"						Condition="PETFrameTypeSequenceNotInPerFrameFunctionalGroupSequence"
 		InvokeMacro="UnassignedSharedConvertedAttributesMacro"
-		InvokeMacro="ImageFrameConversionSourceMacro"		Condition="ConversionSourceAttributesSequenceNotInPerFrameFunctionalGroupSequence"
 	SequenceEnd
 
 	Sequence="PerFrameFunctionalGroupsSequence"				Type="1"	VM="1-n"
@@ -204,7 +203,7 @@ Module="MultiFrameFunctionalGroupsForLegacyConvertedEnhancedPETImage"
 		InvokeMacro="IrradiationEventIdentificationMacro"	Condition="IrradiationEventIdentificationMacroOKInPerFrameFunctionalGroupSequence"
 		InvokeMacro="PETFrameTypeMacro"						Condition="PETFrameTypeSequenceNotInSharedFunctionalGroupSequence"
 		InvokeMacro="UnassignedPerFrameConvertedAttributesMacro"
-		InvokeMacro="ImageFrameConversionSourceMacro"		Condition="ConversionSourceAttributesSequenceNotInSharedFunctionalGroupSequence"
+		InvokeMacro="ImageFrameConversionSourceMacro"		Condition="ImageFrameConversionSourceMacroPresentInPerFrameFunctionalGroupSequence"
 	SequenceEnd
 ModuleEnd
 
diff --git a/libsrc/standard/module/rt.tpl b/libsrc/standard/module/rt.tpl
index 0478e6d..7aee496 100755
--- a/libsrc/standard/module/rt.tpl
+++ b/libsrc/standard/module/rt.tpl
@@ -148,6 +148,8 @@ Module="RTDose"
 	Name="BitsStored"											Type="1C"	Condition="PixelDataPresent"	BinaryEnumValues="BitsAre16Or32"	#should real be same as BitsAllocated
 	Name="HighBit"												Type="1C"	Condition="PixelDataPresent"	BinaryEnumValues="BitsAre15Or31"	#should real be one less than BitsStored
 	Name="PixelRepresentation"									Type="1C"	Condition="PixelDataPresent"	BinaryEnumValues="PixelRepresentationUnsigned"
+	Name="ContentDate"											Type="3"
+	Name="ContentTime"											Type="3"
 	Name="DoseUnits"											Type="1"	StringEnumValues="DoseUnits"
 	Name="DoseType"												Type="1"	StringDefinedTerms="DoseType"
 	Name="SpatialTransformOfDose"								Type="3"	StringDefinedTerms="SpatialTransformOfDose"
@@ -453,6 +455,7 @@ Module="RTFractionScheme"
 		Sequence="ReferencedBeamSequence"						Type="1C"	VM="1-n"	Condition="NumberOfBeamsNotZero"
 			Name="ReferencedBeamNumber"							Type="1"
 			Name="BeamDoseSpecificationPoint"					Type="3"
+			Name="ReferencedDoseReferenceUID"					Type="3"
 			Name="BeamDose"										Type="3"
 			Name="BeamDoseType"									Type="1C"	Condition="AlternateBeamDosePresent"	StringEnumValues="BeamDoseType"	mbpo="true"
 			Verify="BeamDoseType"											Condition="AlternateBeamDoseTypeSameValueAsBeamDoseType"	ThenErrorMessage="A different value than AlternateBeamDoseType is required"
diff --git a/libsrc/standard/module/softcopy.tpl b/libsrc/standard/module/softcopy.tpl
index 31cc17e..99b4b7b 100755
--- a/libsrc/standard/module/softcopy.tpl
+++ b/libsrc/standard/module/softcopy.tpl
@@ -35,6 +35,8 @@ Module="GraphicAnnotation"
 			Name="BoundingBoxTextHorizontalJustification"	Type="1C"	Condition="BoundingBoxTopLeftHandCornerPresent"	StringEnumValues="BoundingBoxTextHorizontalJustification"
 			Name="AnchorPoint"								Type="1C"	Condition="AnchorPointNeeded" mbpo="true"
 			Name="AnchorPointVisibility"					Type="1C"	Condition="AnchorPointPresent"	StringEnumValues="YesNoLetter"
+			Name="TrackingID"								Type="1C"	Condition="TrackingUIDIsPresent"
+			Name="TrackingUID"								Type="1C"	Condition="TrackingIDIsPresent"
 		SequenceEnd
 		Sequence="GraphicObjectSequence"					Type="1C"	VM="1-n"	Condition="RequireGraphicObjectSequence"
 			Name="GraphicAnnotationUnits"					Type="1"	StringEnumValues="AnnotationUnits"
@@ -46,6 +48,8 @@ Module="GraphicAnnotation"
 			Verify="GraphicData"										VM="8"	Condition="GraphicTypeIsELLIPSE"
 			Name="GraphicType"								Type="1"	StringEnumValues="GraphicType"
 			Name="GraphicFilled"							Type="1C"	NoCondition=""	StringEnumValues="YesNoLetter"	# very hard to check
+			Name="TrackingID"								Type="1C"	Condition="TrackingUIDIsPresent"
+			Name="TrackingUID"								Type="1C"	Condition="TrackingIDIsPresent"
 		SequenceEnd
 	SequenceEnd
 ModuleEnd
diff --git a/libsrc/standard/module/vl.tpl b/libsrc/standard/module/vl.tpl
index 8d208fc..7ee72f8 100755
--- a/libsrc/standard/module/vl.tpl
+++ b/libsrc/standard/module/vl.tpl
@@ -358,6 +358,7 @@ Module="OpticalPath"
 			InvokeMacro="CodeSequenceMacro"
 		SequenceEnd
 		Name="IlluminationWaveLength"					Type="1C"	Condition="IlluminationColorCodeSequenceNotPresent"	mbpo="true"
+		Verify="IlluminationWaveLength"								Condition="IlluminationWaveLengthInvalid"	ThenErrorMessage="Invalid value - required to be greater than zero"
 		Sequence="IlluminationColorCodeSequence"		Type="1C"	VM="1"	Condition="IlluminationWaveLengthNotPresent"	mbpo="true"
 			InvokeMacro="CodeSequenceMacro"
 		SequenceEnd
@@ -705,7 +706,7 @@ DefineMacro="OphthalmicAxialMeasurementsMacro"
 				InvokeMacro="OphthalmicAxialLengthSegmentalMeasurementsMacro"
 			SequenceEnd
 		SequenceEnd
-		Sequence="OphthalmicAxialLengthMeasurementsSegmentalLengthSequence"			Type="1C"	VM="1"		Condition="OphthalmicAxialLengthMeasurementsTypeIsSegmentalLength"
+		Sequence="OphthalmicAxialLengthMeasurementsSegmentalLengthSequence"			Type="1C"	VM="1-n"	Condition="OphthalmicAxialLengthMeasurementsTypeIsSegmentalLength"
 			InvokeMacro="OphthalmicAxialLengthSegmentalMeasurementsMacro"
 		SequenceEnd
 	SequenceEnd
@@ -730,7 +731,7 @@ DefineMacro="OphthalmicAxialMeasurementsRelatedInformationMacro"
 		Name="OphthalmicAxialLengthDataSourceDescription"				Type="3"
 	SequenceEnd
 	Sequence="OpticalOphthalmicAxialLengthMeasurementsSequence"			Type="1C"	VM="1"		Condition="OphthalmicAxialMeasurementsDeviceTypeIsOptical"
-		Name="SignalToNoiseRatio"										Type="1C"				Condition="OphthalmicAxialLengthMeasurementsTypeAboveIsTotalLength"
+		Name="SignalToNoiseRatio"										Type="3"
 		Sequence="OphthalmicAxialLengthDataSourceCodeSequence"			Type="1"	VM="1"
 			InvokeMacro="CodeSequenceMacro"														DefinedContextID="4240"
 		SequenceEnd
diff --git a/libsrc/standard/sopcl.tpl b/libsrc/standard/sopcl.tpl
index 3596618..edcb04d 100755
--- a/libsrc/standard/sopcl.tpl
+++ b/libsrc/standard/sopcl.tpl
@@ -101,6 +101,10 @@ DirectoryRecord="PRESENTATION"		Name="BlendingSoftcopyPresentationStateStorage"
 DirectoryRecord="PRESENTATION"		Name="XAXRFGrayscaleSoftcopyPresentationStateStorage"	Desc="XA/XRF Grayscale Softcopy Presentation State Storage"	Uid="1.2.840.10008.5.1.4.1.1.11.5"
 DirectoryRecord="PRESENTATION"		Name="GrayscalePlanarMPRVolumetricPresentationStateStorage"		Desc="Grayscale Planar MPR Volumetric Presentation State Storage"	Uid="1.2.840.10008.5.1.4.1.1.11.6"
 DirectoryRecord="PRESENTATION"		Name="CompositingPlanarMPRVolumetricPresentationStateStorage"	Desc="Compositing Planar MPR Volumetric Presentation State Storage"	Uid="1.2.840.10008.5.1.4.1.1.11.7"
+DirectoryRecord="PRESENTATION"		Name="AdvancedBlendingPresentationStateStorage"	Desc="Advanced Blending Presentation State Storage"	Uid="1.2.840.10008.5.1.4.1.1.11.8"
+DirectoryRecord="PRESENTATION"		Name="VolumeRenderingVolumetricPresentationStateStorage"	Desc="Volume Rendering Volumetric Presentation State Storage"	Uid="1.2.840.10008.5.1.4.1.1.11.9"
+DirectoryRecord="PRESENTATION"		Name="SegmentedVolumeRenderingVolumetricPresentationStateStorage"	Desc="Segmented Volume Rendering Volumetric Presentation State Storage"	Uid="1.2.840.10008.5.1.4.1.1.11.10"
+DirectoryRecord="PRESENTATION"		Name="MultipleVolumeRenderingVolumetricPresentationStateStorage"	Desc="Multiple Volume Rendering Volumetric Presentation State Storage"	Uid="1.2.840.10008.5.1.4.1.1.11.11"
 
 DirectoryRecord="IMAGE"			Name="XRayAngiographicImageStorage"				Desc="X-Ray Angiographic Image Storage"				Uid="1.2.840.10008.5.1.4.1.1.12.1"
 DirectoryRecord="IMAGE"			Name="EnhancedXAImageStorage"					Desc="Enhanced XA Image Storage"					Uid="1.2.840.10008.5.1.4.1.1.12.1.1"
@@ -131,6 +135,8 @@ DirectoryRecord="STEREOMETRIC"	Name="StereometricRelationshipStorage"						Desc=
 DirectoryRecord="IMAGE"			Name="OphthalmicTomographyImageStorage"						Desc="Ophthalmic Tomography Image Storage"							Uid="1.2.840.10008.5.1.4.1.1.77.1.5.4"
 DirectoryRecord="IMAGE"			Name="WideFieldOphthalmicPhotographyStereographicProjectionImageStorage"	Desc="Wide Field Ophthalmic Photography Stereographic Projection Image Storage"	Uid="1.2.840.10008.5.1.4.1.1.77.1.5.5"
 DirectoryRecord="IMAGE"			Name="WideFieldOphthalmicPhotography3DCoordinatesImageStorage"				Desc="Wide Field Ophthalmic Photography 3D Coordinates Image Storage"			Uid="1.2.840.10008.5.1.4.1.1.77.1.5.6"
+DirectoryRecord="IMAGE"			Name="OphthalmicOpticalCoherenceTomographyEnFaceImageStorage"				Desc="Ophthalmic Optical Coherence Tomography En Face Image Storage"			Uid="1.2.840.10008.5.1.4.1.1.77.1.5.7"
+DirectoryRecord="IMAGE"			Name="OphthalmicOpticalCoherenceTomographyBscanVolumeAnalysisStorage"		Desc="Ophthalmic Optical Coherence Tomography B-scan Volume Analysis Storage"	Uid="1.2.840.10008.5.1.4.1.1.77.1.5.8"
 
 DirectoryRecord="IMAGE"			Name="VLWholeSlideMicroscopyImageStorage"					Desc="VL Whole Slide Microscopy Image Storage"						Uid="1.2.840.10008.5.1.4.1.1.77.1.6"
 
@@ -150,6 +156,8 @@ DirectoryRecord="SR DOCUMENT"		Name="RadiopharmaceuticalRadiationDoseSRStorage"
 DirectoryRecord="SR DOCUMENT"		Name="ColonCADSRStorage"					Desc="Colon CAD SR Storage"					Uid="1.2.840.10008.5.1.4.1.1.88.69"
 DirectoryRecord="SR DOCUMENT"		Name="ImplantationPlanSRStorage"			Desc="Implantation Plan SR Storage"			Uid="1.2.840.10008.5.1.4.1.1.88.70"
 DirectoryRecord="SR DOCUMENT"		Name="AcquisitionContextSRStorage"			Desc="Acquisition Context SR Storage"			Uid="1.2.840.10008.5.1.4.1.1.88.71"
+DirectoryRecord="SR DOCUMENT"		Name="SimplifiedAdultEchoSRStorage"			Desc="Simplified Adult Echo SR Storage"			Uid="1.2.840.10008.5.1.4.1.1.88.72"
+DirectoryRecord="SR DOCUMENT"		Name="PatientRadiationDoseSRStorage"		Desc="Patient Radiation Dose SR Storage"		Uid="1.2.840.10008.5.1.4.1.1.88.73"
 DirectoryRecord="SR DOCUMENT"		Name="MacularGridThicknessAndVolumeReportStorage"					Desc="Macular Grid Thickness and Volume Report Storage"					Uid="1.2.840.10008.5.1.4.1.1.79.1"
 
 DirectoryRecord="KEY OBJECT DOC"	Name="KeyObjectSelectionDocumentStorage"			Desc="Key Object Selection Document Storage"			Uid="1.2.840.10008.5.1.4.1.1.88.59"
diff --git a/libsrc/standard/strval/base.tpl b/libsrc/standard/strval/base.tpl
index 911363d..b12abae 100755
--- a/libsrc/standard/strval/base.tpl
+++ b/libsrc/standard/strval/base.tpl
@@ -405,7 +405,8 @@ StringValues="InterpretationStatusID" {
 StringValues="Sex" {
 	M = Male,
 	F = Female,
-	O = Other
+	O = Other,
+	***EMPTYVALUE***
 }
 
 StringValues="Laterality" {
@@ -1556,4 +1557,14 @@ StringValues="ParametricMapImagePixelPresentation" {
 	MONOCHROME
 }
 
+StringValues="CodingSchemeURLType" {
+	DOC,
+	OWL,
+	CSV
+}
+
+StringValues="LongitudinalTemporalEventType" {
+	ENROLLMENT,
+	BASELINE
+}
 
diff --git a/libsrc/standard/strval/dx.tpl b/libsrc/standard/strval/dx.tpl
index 498305a..689a2a1 100755
--- a/libsrc/standard/strval/dx.tpl
+++ b/libsrc/standard/strval/dx.tpl
@@ -314,4 +314,10 @@ StringValues="MammographyPositionerAndDetectorMotion" {
 	COMPLEX_CONT = Complex motion, continuous during acquisition
 }
 
+StringValues="EntranceDoseDerivation"	{
+	IAK,
+	ESAK,
+	ESDBS,
+	ESDNOBS
+}
 
diff --git a/libsrc/support/condn.awk b/libsrc/support/condn.awk
index cfaf413..0d00a15 100644
--- a/libsrc/support/condn.awk
+++ b/libsrc/support/condn.awk
@@ -167,6 +167,14 @@ NR==1	{
 			RLENGTH-length("ElementPresentInPathFromRoot=\"")-1);
 	}
 
+	elementpresentinpathfirstitem=0
+	elementpresentinpathfromrootfirstitem=""
+	if (match($0,"ElementPresentInPathFromRootFirstItem=\"[^\"]*\"")) {
+		elementpresentinpathfirstitem=1;
+		elementpresentinpathfromrootfirstitem=substr($0,RSTART+length("ElementPresentInPathFromRootFirstItem=\""),
+			RLENGTH-length("ElementPresentInPathFromRootFirstItem=\"")-1);
+	}
+
 	grouppresent=0;
 	grouppresentmask=""
 	if (match($0,"GroupPresent=\"[^\"]*\"")) {
@@ -318,6 +326,15 @@ NR==1	{
 				print "Error - Must specify sequence attribute argument for ElementPresentInPathFromRoot " FNR >"/dev/tty"
 			}
 		}
+		if (elementpresentinpathfirstitem) {
+			# For now we only support descending from root into items of a top level sequence
+			if (length(elementpresentinpathfromrootfirstitem) > 0) {
+				print "\tcondition" nestinglevel " " operator "=" modifier "(ElementPresentInPathFromRootFirstItem(rootlist,TagFromName(" element "),TagFromName(" elementpresentinpathfromrootfirstitem "))?1:0);"
+			}
+			else {
+				print "Error - Must specify sequence attribute argument for ElementPresentInPathFromRoot " FNR >"/dev/tty"
+			}
+		}
 		if (elementpresentinroot) {
 			print "\tcondition" nestinglevel " " operator "=" modifier "(ElementPresent(rootlist,TagFromName(" element "))?1:0);"
 		}
diff --git a/libsrc/support/module.awk b/libsrc/support/module.awk
index 90b12c2..edb6c72 100644
--- a/libsrc/support/module.awk
+++ b/libsrc/support/module.awk
@@ -289,6 +289,10 @@ NR==1	{
 			print "\t\t\tint i; for (i=0; i<n; ++i) {"
 			if (role == "verify") {
 				indentcode(sequencenestingdepth)
+				print "\t\t\t\tif (verbose)"
+				indentcode(sequencenestingdepth)
+				print "\t\t\t\t\tlog << \"" sequence "\" << \" item [\" << (i+1) << \"]\" << endl;";
+				indentcode(sequencenestingdepth)
 				print "\t\t\t\tAttributeList *parentlist=list;"
 			}
 			indentcode(sequencenestingdepth)

-- 
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