[med-svn] [Git][med-team/dicom3tools][debian/bullseye-backports] 6 commits: New upstream version 1.00~20220120135102

Mathieu Malaterre (@malat) gitlab at salsa.debian.org
Tue Feb 22 10:20:23 GMT 2022



Mathieu Malaterre pushed to branch debian/bullseye-backports at Debian Med / dicom3tools


Commits:
fdcbff29 by Mathieu Malaterre at 2022-01-24T08:19:28+01:00
New upstream version 1.00~20220120135102
- - - - -
1e4faaad by Mathieu Malaterre at 2022-01-24T08:19:29+01:00
Update upstream source from tag 'upstream/1.00_20220120135102'

Update to upstream version '1.00~20220120135102'
with Debian dir 1872a46010e0d903c2179679e2e05dd36bb38390
- - - - -
d274c96c by Mathieu Malaterre at 2022-01-24T08:25:10+01:00
d/control: Bump Std-Vers to 4.6.0 no changes needed

Also run wrap-and-sort for consistency

- - - - -
ac28fa3d by Mathieu Malaterre at 2022-01-24T08:29:51+01:00
d/changelog: Upload 1.00~20220120135102-1 to unstable

- - - - -
8f5e26e2 by Mathieu Malaterre at 2022-02-22T11:13:25+01:00
Merge tag 'debian/1.00_20220120135102-1' into debian/bullseye-backports

- - - - -
0a8040d6 by Mathieu Malaterre at 2022-02-22T11:14:12+01:00
d/changelog: Upload 1.00~20220120135102-1~bpo11+1 to bullseye-bpo

- - - - -


17 changed files:

- CHANGES
- VERSION
- appsrc/dcfile/dciodvfy.cc
- debian/changelog
- debian/control
- libsrc/src/dctool/attrtypo.cc
- libsrc/src/generic/version.cc
- libsrc/src/locale/mesgtext.tpl
- libsrc/standard/condn.tpl
- libsrc/standard/elmdict/dicom3.tpl
- libsrc/standard/elmdict/other.tpl
- libsrc/standard/elmdictie.xml
- libsrc/standard/module/base.tpl
- libsrc/standard/module/rt.tpl
- libsrc/standard/strval/base.tpl
- libsrc/standard/strval/sr.tpl
- libsrc/support/condn.awk


Changes:

=====================================
CHANGES
=====================================
@@ -1,3 +1,23 @@
+220120:	libsrc/src/dctool/attrtypo.cc: Remove odd length assertion failure when reading OB so dataset read can continue; will detect later if verifying (000571)
+
+220116:	libsrc/standard/elmdict/dicom3.tpl: CPACK 114 data elements (CP 2145, CP 2152, CP 2153, CP 2154, CP 2156, CP 2157)
+
+211115: libsrc/support/condn.awk: Fix broken implementation of SequencePresentInPathFromRootFirstItemHasItems in conditions to correct spurious dciodvfy warning that ReferencedSeriesSequence should not be present references to instances in derivation per-frame functional group are present (000570)
+
+211113:	libsrc/standard/elmdict/dicom3.tpl,module/base.tpl: Per-segment multiple algorithms and creators (CP 2115)
+
+211109:	libsrc/standard/condn.tpl,module/rt.tpl: Add missing conditions for BlockThickness and BlockTransmission (000569)
+
+211027:	libsrc/standard/elmdict/dicom3.tpl: Correct misspelled keyword for Number of Table Columns
+
+211027:	libsrc/standard/strval/sr.tpl: Add UIDREF to Mammography CAD SR Value Types (CP 2053)
+
+211026:	libsrc/standard/elmdict/dicom3.tpl: Correct capitalization of 'for' in keyword for (300A,0788)
+
+211025:	libsrc/standard/strval/base.tpl,elmdict/other.tpl: Add 99_APERIO Coding Scheme Designator and private data elements per GT450 DX samples and DCS
+
+211015:	appsrc/dcfile/dciodvfy.cc,libsrc/src/locale/mesgtext.tpl: Check when UIDs are re-used for different entities, such as same for SOP Instance and Study (000568)
+
 211009:	libsrc/include,src/dctool/ie.h,standard/condn.tpl,sopcl.tpl,iodcomp,module,strval/vl.tpl: Add Microscopy Bulk Simple Annotations (Sup 222)
 
 211005:	libsrc/standard/elmdict/dicom3.tpl: Add data elements for Tomotherapeutic and Robotic-Arm Treatment Modalities (Sup 176)


=====================================
VERSION
=====================================
@@ -1 +1 @@
-1.00.snapshot.20211009110822
+1.00.snapshot.20220120135102


=====================================
appsrc/dcfile/dciodvfy.cc
=====================================
@@ -2741,6 +2741,178 @@ checkConsistencyOfTiledImageGeometry(AttributeList &list,bool verbose,bool newfo
 	return success;
 }
 
+static bool
+checkUIDsAreNotReusedForDifferentEntities(AttributeList &list,bool verbose,bool newformat,TextOutputStream &log) {
+//cerr << "checkUIDsAreNotReusedForDifferentEntities():" << endl;
+	bool success=true;
+
+	Attribute *aSOPInstanceUID=list[TagFromName(SOPInstanceUID)];
+	Attribute *aSeriesInstanceUID=list[TagFromName(SeriesInstanceUID)];
+	Attribute *aStudyInstanceUID=list[TagFromName(StudyInstanceUID)];
+	Attribute *aFrameOfReferenceUID=list[TagFromName(FrameOfReferenceUID)];
+
+	char *vSOPInstanceUID=AttributeValue(aSOPInstanceUID,"");
+	char *vSeriesInstanceUID=AttributeValue(aSeriesInstanceUID,"");
+	char *vStudyInstanceUID=AttributeValue(aStudyInstanceUID,"");
+	char *vFrameOfReferenceUID=AttributeValue(aFrameOfReferenceUID,"");
+
+	if (strlen(vSOPInstanceUID) > 0) {
+		if (strcmp(vSOPInstanceUID,vSeriesInstanceUID) == 0) {
+			if (newformat) {
+				log << EMsgDCF(MMsgDC(SOPInstanceUIDHasSameValueAsSeriesInstanceUID),aSOPInstanceUID)
+					<< " = <" << vSOPInstanceUID << ">"
+					<< endl;
+			}
+			else {
+				log << EMsgDC(SOPInstanceUIDHasSameValueAsSeriesInstanceUID)
+					<< " <" << vSOPInstanceUID << ">"
+					<< endl;
+			}
+		}
+		if (strcmp(vSOPInstanceUID,vStudyInstanceUID) == 0) {
+			if (newformat) {
+				log << EMsgDCF(MMsgDC(SOPInstanceUIDHasSameValueAsStudyInstanceUID),aSOPInstanceUID)
+					<< " = <" << vSOPInstanceUID << ">"
+					<< endl;
+			}
+			else {
+				log << EMsgDC(SOPInstanceUIDHasSameValueAsStudyInstanceUID)
+					<< " <" << vSOPInstanceUID << ">"
+					<< endl;
+			}
+		}
+		if (strcmp(vSOPInstanceUID,vFrameOfReferenceUID) == 0) {
+			if (newformat) {
+				log << EMsgDCF(MMsgDC(SOPInstanceUIDHasSameValueAsFrameOfReferenceUID),aSOPInstanceUID)
+					<< " = <" << vSOPInstanceUID << ">"
+					<< endl;
+			}
+			else {
+				log << EMsgDC(SOPInstanceUIDHasSameValueAsFrameOfReferenceUID)
+					<< " <" << vSOPInstanceUID << ">"
+					<< endl;
+			}
+		}
+	}
+
+	if (strlen(vSeriesInstanceUID) > 0) {
+		if (strcmp(vSeriesInstanceUID,vStudyInstanceUID) == 0) {
+			if (newformat) {
+				log << EMsgDCF(MMsgDC(SeriesInstanceUIDHasSameValueAsStudyInstanceUID),aSeriesInstanceUID)
+					<< " = <" << vSeriesInstanceUID << ">"
+					<< endl;
+			}
+			else {
+				log << EMsgDC(SeriesInstanceUIDHasSameValueAsStudyInstanceUID)
+					<< " <" << vSeriesInstanceUID << ">"
+					<< endl;
+			}
+		}
+		if (strcmp(vSeriesInstanceUID,vFrameOfReferenceUID) == 0) {
+			if (newformat) {
+				log << EMsgDCF(MMsgDC(SeriesInstanceUIDHasSameValueAsFrameOfReferenceUID),aSeriesInstanceUID)
+					<< " = <" << vSeriesInstanceUID << ">"
+					<< endl;
+			}
+			else {
+				log << EMsgDC(SeriesInstanceUIDHasSameValueAsFrameOfReferenceUID)
+					<< " <" << vSeriesInstanceUID << ">"
+					<< endl;
+			}
+		}
+	}
+
+	if (strlen(vStudyInstanceUID) > 0) {
+		if (strcmp(vStudyInstanceUID,vFrameOfReferenceUID) == 0) {
+			if (newformat) {
+				log << EMsgDCF(MMsgDC(StudyInstanceUIDHasSameValueAsFrameOfReferenceUID),aStudyInstanceUID)
+					<< " = <" << vStudyInstanceUID << ">"
+					<< endl;
+			}
+			else {
+				log << EMsgDC(StudyInstanceUIDHasSameValueAsFrameOfReferenceUID)
+					<< " <" << vStudyInstanceUID << ">"
+					<< endl;
+			}
+		}
+	}
+	
+	{
+			Attribute *aSpecimenDescriptionSequence = list[TagFromName(SpecimenDescriptionSequence)];
+			if (aSpecimenDescriptionSequence && aSpecimenDescriptionSequence->isSequence()) {
+				AttributeList **aSpecimenDescriptionSequenceLists;
+				int nSpecimenDescriptionSequenceItems=aSpecimenDescriptionSequence->getLists(&aSpecimenDescriptionSequenceLists);
+				for (int i=0; i<nSpecimenDescriptionSequenceItems; ++i) {
+				AttributeList *SpecimenDescriptionSequenceItemList = aSpecimenDescriptionSequenceLists[i];
+				if (SpecimenDescriptionSequenceItemList) {
+					Attribute *aSpecimenUID=(*SpecimenDescriptionSequenceItemList)[TagFromName(SpecimenUID)];
+					char *vSpecimenUID=AttributeValue(aSpecimenUID,"");
+					if (strlen(vSpecimenUID) > 0) {
+//cerr << "Checking SpecimenUID " << vSpecimenUID << endl;
+						if (strcmp(vSpecimenUID,vSOPInstanceUID) == 0) {
+							if (newformat) {
+								log << EMsgDCF(MMsgDC(SpecimenUIDHasSameValueAsSOPInstanceUID),aSpecimenUID)
+								<< " = <" << vSpecimenUID << ">"
+								<< endl;
+							}
+							else {
+								log << EMsgDC(SpecimenUIDHasSameValueAsSOPInstanceUID)
+								<< " <" << vSpecimenUID << ">"
+								<< endl;
+							}
+						}
+						if (strcmp(vSpecimenUID,vSeriesInstanceUID) == 0) {
+							if (newformat) {
+								log << EMsgDCF(MMsgDC(SpecimenUIDHasSameValueAsSeriesInstanceUID),aSpecimenUID)
+								<< " = <" << vSpecimenUID << ">"
+								<< endl;
+							}
+							else {
+								log << EMsgDC(SpecimenUIDHasSameValueAsSeriesInstanceUID)
+								<< " <" << vSpecimenUID << ">"
+								<< endl;
+							}
+						}
+						if (strcmp(vSpecimenUID,vStudyInstanceUID) == 0) {
+							if (newformat) {
+								log << EMsgDCF(MMsgDC(SpecimenUIDHasSameValueAsStudyInstanceUID),aSpecimenUID)
+								<< " = <" << vSpecimenUID << ">"
+								<< endl;
+							}
+							else {
+								log << EMsgDC(SpecimenUIDHasSameValueAsStudyInstanceUID)
+								<< " <" << vSpecimenUID << ">"
+								<< endl;
+							}
+						}
+						if (strcmp(vSpecimenUID,vFrameOfReferenceUID) == 0) {
+							if (newformat) {
+								log << EMsgDCF(MMsgDC(SpecimenUIDHasSameValueAsFrameOfReferenceUID),aSpecimenUID)
+								<< " = <" << vSpecimenUID << ">"
+								<< endl;
+							}
+							else {
+								log << EMsgDC(SpecimenUIDHasSameValueAsFrameOfReferenceUID)
+								<< " <" << vSpecimenUID << ">"
+								<< endl;
+							}
+						}
+					}
+					delete[] vSpecimenUID;
+				}
+			}
+		}
+	}
+	
+
+	delete[] vSOPInstanceUID;
+	delete[] vSeriesInstanceUID;
+	delete[] vStudyInstanceUID;
+	delete[] vFrameOfReferenceUID;
+
+	return success;
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -2874,6 +3046,8 @@ main(int argc, char *argv[])
 	if (!checkReferencedSegmentNumbersHaveTarget(list,verbose,newformat,log)) success = false;
 	
 	if (!checkConsistencyOfTiledImageGeometry(list,verbose,newformat,log)) success = false;
+	
+	if (!checkUIDsAreNotReusedForDifferentEntities(list,verbose,newformat,log)) success = false;
 
 	if (!list.validatePrivate(verbose,newformat,log)) success = false;
 	


=====================================
debian/changelog
=====================================
@@ -1,3 +1,18 @@
+dicom3tools (1.00~20220120135102-1~bpo11+1) bullseye-backports; urgency=medium
+
+  * Team upload.
+  * Rebuild for bullseye-backports.
+
+ -- Mathieu Malaterre <malat at debian.org>  Tue, 22 Feb 2022 11:13:41 +0100
+
+dicom3tools (1.00~20220120135102-1) unstable; urgency=medium
+
+  * Team upload.
+  * New upstream version 1.00~20220120135102
+  * d/control: Bump Std-Vers to 4.6.0 no changes needed
+
+ -- Mathieu Malaterre <malat at debian.org>  Mon, 24 Jan 2022 08:29:12 +0100
+
 dicom3tools (1.00~20211009110822-1~bpo11+1) bullseye-backports; urgency=medium
 
   * Team upload.


=====================================
debian/control
=====================================
@@ -1,15 +1,14 @@
 Source: dicom3tools
 Maintainer: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
-Uploaders: Andreas Tille <tille at debian.org>,
-           Gert Wollny <gewo at debian.org>
+Uploaders: Andreas Tille <tille at debian.org>, Gert Wollny <gewo at debian.org>
 Section: graphics
 Priority: optional
 Build-Depends: debhelper-compat (= 12),
                gawk,
-               xutils-dev,
                libx11-dev,
-               libxext-dev
-Standards-Version: 4.5.0
+               libxext-dev,
+               xutils-dev
+Standards-Version: 4.6.0
 Vcs-Browser: https://salsa.debian.org/med-team/dicom3tools
 Vcs-Git: https://salsa.debian.org/med-team/dicom3tools.git
 Homepage: https://www.dclunie.com/dicom3tools.html
@@ -17,8 +16,7 @@ Rules-Requires-Root: no
 
 Package: dicom3tools
 Architecture: any
-Depends: ${shlibs:Depends},
-         ${misc:Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
 Recommends: netpbm
 Suggests: pvrg-jpeg
 Description: DICOM medical image files manipulation and conversion tools


=====================================
libsrc/src/dctool/attrtypo.cc
=====================================
@@ -78,7 +78,7 @@ OtherByteSmallNonPixelAttributeBase::read(BinaryInputStream& stream,Uint32 lengt
 {
 	Assert(lengthinbytes == 0);
 	Assert(data == 0);
-	Assert(length%2 == 0);	// DICOM likes even things
+	//Assert(length%2 == 0);	// DICOM likes even things - but should read without failing and complain later
 	data=new unsigned char[length];
 	Assert(data);
 	if (length) stream.read((char *)data,size_t(length));
@@ -183,7 +183,7 @@ OtherWordSmallNonPixelAttributeBase::read(BinaryInputStream& stream,Uint32 lengt
 {
 	Assert(lengthinbytes == 0);
 	Assert(data == 0);
-	Assert(length%2 == 0);	// DICOM likes even things
+	//Assert(length%2 == 0);	// DICOM likes even things - but should read without failing and complain later
 	Uint32 lengthinwords=length/2;
 	if (lengthinwords) {
 		data=new Uint16[lengthinwords];
@@ -695,7 +695,7 @@ UnknownSmallAttributeBase::read(BinaryInputStream& stream,Uint32 length)
 {
 	Assert(lengthinbytes == 0);
 	Assert(data == 0);
-	//Assert(length%2 == 0);	// DICOM likes even things
+	//Assert(length%2 == 0);	// DICOM likes even things - but should read without failing and complain later
 	data=new unsigned char[length];
 	Assert(data);
 	if (length) stream.read((char *)data,size_t(length));


=====================================
libsrc/src/generic/version.cc
=====================================
@@ -4,4 +4,4 @@
 
 #include "version.h"
 
-const char* dicom3tools_version_string = "1.00.snapshot.20211009110822";
+const char* dicom3tools_version_string = "1.00.snapshot.20220120135102";


=====================================
libsrc/src/locale/mesgtext.tpl
=====================================
@@ -244,6 +244,8 @@ Index="SeqAttrReadFailed"			English="Sequence attribute read failed"
 Index="SequenceHasDifferentNumberOfItemsInOneInstanceComparedToTheOther"			English="Sequence has different number of items"
 Index="SequenceHasDifferentValueRepresentationInOneInstanceComparedToTheOther"			English="Sequence has different value representation"
 Index="SequenceItemReadFailed"			English="Sequence Item dataset read failed - giving up"
+Index="SeriesInstanceUIDHasSameValueAsStudyInstanceUID"				English="SeriesInstanceUID has same value as StudyInstanceUID"
+Index="SeriesInstanceUIDHasSameValueAsFrameOfReferenceUID"			English="SeriesInstanceUID has same value as FrameOfReferenceUID"
 Index="SharedMemoryAllocationFailed"		English="Can't allocate shared memory"
 Index="SharedMemoryAttachFailed"		English="Can't attach shared memory"
 Index="ShouldBe"				English="Should be"
@@ -251,10 +253,18 @@ Index="Signed"					English="Signed"
 Index="SkippingBadTagInsideUndefinedLengthSequence"		English="Skipping bad tag inside undefined length sequence"
 Index="SkippingToEndOfEnclosingFixedLengthSequence"		English="Skipping to end of enclosing fixed length sequence"
 Index="SOPClassInCurrentRequestedProcedureOrPertinentOtherEvidenceSequenceDoesNotMatchReference"	English="SOP Class in CurrentRequestedProcedureEvidenceSequence or PertinentOtherEvidenceSequence does not match reference"
+Index="SOPInstanceUIDHasSameValueAsSeriesInstanceUID"				English="SOPInstanceUID has same value as SeriesInstanceUID"
+Index="SOPInstanceUIDHasSameValueAsStudyInstanceUID"				English="SOPInstanceUID has same value as StudyInstanceUID"
+Index="SOPInstanceUIDHasSameValueAsFrameOfReferenceUID"				English="SOPInstanceUID has same value as FrameOfReferenceUID"
 Index="SpecifiedAs"				English="specified as"
 Index="SpecifiedLength"				English="specified length"
 Index="SpecifiedNumberOfVectorValuesDoesNotMatchActualValuesInVector"		English="Specified number of vector values does not match actual values in vector"
+Index="SpecimenUIDHasSameValueAsSOPInstanceUID"						English="SpecimenUID has same value as SOPInstanceUID"
+Index="SpecimenUIDHasSameValueAsSeriesInstanceUID"					English="SpecimenUID has same value as SeriesInstanceUID"
+Index="SpecimenUIDHasSameValueAsStudyInstanceUID"					English="SpecimenUID has same value as StudyInstanceUID"
+Index="SpecimenUIDHasSameValueAsFrameOfReferenceUID"				English="SpecimenUID has same value as FrameOfReferenceUID"
 Index="StringAttributeHasDifferentValueInOneInstanceComparedToTheOther"		English="String attribute has different value"
+Index="StudyInstanceUIDHasSameValueAsFrameOfReferenceUID"			English="StudyInstanceUID has same value as FrameOfReferenceUID"
 Index="TagReadFailed"				English="Tag read failed"
 Index="TagsDuplicated"				English="Tags out of order - same element occurs twice"
 Index="TagsOutOfOrder"				English="Tags out of order - trailing garbage, wrong transfer syntax, or not valid DICOM"


=====================================
libsrc/standard/condn.tpl
=====================================
@@ -1833,6 +1833,16 @@ Condition="NeedIsocenterToCompensatorDistance"
 	Element="CompensatorMountingPosition"		Operator="And" StringValue="DOUBLE_SIDED"
 ConditionEnd
 
+Condition="MaterialIDNotEmpty"
+	Element="MaterialID"				ElementPresent=""
+	Element="MaterialID"				Operator="And" ValuePresent=""
+ConditionEnd
+
+Condition="MaterialIDEmptyOrAbsent"
+	Element="MaterialID"				Modifier="Not"	ElementPresent=""
+	Element="MaterialID"				Operator="Or"	Modifier="Not"	ValuePresent=""
+ConditionEnd
+
 Condition="NumberOfBoliNotZero"
 	Element="NumberOfBoli"			ElementPresent=""
 	Element="NumberOfBoli"			Operator="And" BinaryValue="> 0"


=====================================
libsrc/standard/elmdict/dicom3.tpl
=====================================
@@ -707,6 +707,7 @@
 (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"
+(0018,1203) VERS="3"	VR="DT"   VM="1"	Keyword="CalibrationDateTime"			Name="Calibration DateTime"
 (0018,1210) VERS="3"	VR="SH"   VM="1-n"	Keyword="ConvolutionKernel"			Name="Convolution Kernel"
 (0018,1240) VERS="RET"	VR="IS"   VM="1-n"	Keyword="UpperLowerPixelValues"			Name="Upper/Lower Pixel Values"
 (0018,1242) VERS="3"	VR="IS"   VM="1"	Keyword="ActualFrameDuration"			Name="Actual Frame Duration"
@@ -2054,6 +2055,7 @@
 (0032,1055) VERS="RET"	VR="CS"   VM="1"	Keyword="StudyComponentStatusID"		Name="Study Component Status ID"
 (0032,1060) VERS="3"	VR="LO"   VM="1"	Keyword="RequestedProcedureDescription"		Name="Requested Procedure Description"
 (0032,1064) VERS="3"	VR="SQ"   VM="1"	Keyword="RequestedProcedureCodeSequence"	Name="Requested Procedure Code Sequence"
+(0032,1065) VERS="3"	VR="SQ"   VM="1"	Keyword="RequestedLateralityCodeSequence"	Name="Requested Laterality Code Sequence"
 (0032,1066) VERS="3"	VR="UT"   VM="1"	Keyword="ReasonForVisit"					Name="Reason for Visit"
 (0032,1067) VERS="3"	VR="SQ"   VM="1"	Keyword="ReasonForVisitCodeSequence"		Name="Reason for Visit Code Sequence"
 (0032,1070) VERS="3"	VR="LO"   VM="1"	Keyword="RequestedContrastAgent"		Name="Requested Contrast Agent"
@@ -2444,7 +2446,7 @@
 (0040,A744) VERS="RET"	VR="SQ"   VM="1"	Keyword="LanguageCodeSequenceTrial"					Name="Language Code Sequence (Trial)"
 (0040,A801) VERS="3"	VR="SQ"   VM="1"	Keyword="TabulatedValuesSequence"					Name="Tabulated Values Sequence"
 (0040,A802) VERS="3"	VR="UL"   VM="1"	Keyword="NumberOfTableRows"							Name="Number of Table Rows"
-(0040,A803) VERS="3"	VR="UL"   VM="1"	Keyword="NumbeOfTableColumns"						Name="Number of Table Columns"
+(0040,A803) VERS="3"	VR="UL"   VM="1"	Keyword="NumberOfTableColumns"						Name="Number of Table Columns"
 (0040,A804) VERS="3"	VR="UL"   VM="1"	Keyword="TableRowNumber"							Name="Table Row Number"
 (0040,A805) VERS="3"	VR="UL"   VM="1"	Keyword="TableColumnNumber"							Name="Table Column Number"
 (0040,A806) VERS="3"	VR="SQ"   VM="1"	Keyword="TableRowDefinitionSequence"				Name="Table Row Definition Sequence"
@@ -2765,7 +2767,7 @@
 (0062,0006) VERS="3"	VR="ST"   VM="1"	Keyword="SegmentDescription"	Name="Segment Description"
 (0062,0007) VERS="3"	VR="SQ"   VM="1"	Keyword="SegmentationAlgorithmIdentificationSequence"	Name="Segmentation Algorithm Identification Sequence"
 (0062,0008) VERS="3"	VR="CS"   VM="1"	Keyword="SegmentAlgorithmType"	Name="Segment Algorithm Type"
-(0062,0009) VERS="3"	VR="LO"   VM="1"	Keyword="SegmentAlgorithmName"	Name="Segment Algorithm Name"
+(0062,0009) VERS="3"	VR="LO"   VM="1-n"	Keyword="SegmentAlgorithmName"	Name="Segment Algorithm Name"
 (0062,000A) VERS="3"	VR="SQ"   VM="1"	Keyword="SegmentIdentificationSequence"	Name="Segment Identification Sequence"
 (0062,000B) VERS="3"	VR="US"   VM="1-n"	Keyword="ReferencedSegmentNumber"	Name="Referenced Segment Number"
 (0062,000C) VERS="3"	VR="US"   VM="1"	Keyword="RecommendedDisplayGrayscaleValue"	Name="Recommended Display Grayscale Value"
@@ -3731,6 +3733,7 @@
 (3008,00B0) VERS="3"	VR="SQ"   VM="1"	Keyword="RecordedWedgeSequence"					Name="Recorded Wedge Sequence"
 (3008,00C0) VERS="3"	VR="SQ"   VM="1"	Keyword="RecordedCompensatorSequence"				Name="Recorded Compensator Sequence"
 (3008,00D0) VERS="3"	VR="SQ"   VM="1"	Keyword="RecordedBlockSequence"					Name="Recorded Block Sequence"
+(3008,00D1) VERS="3"	VR="SQ"   VM="1"	Keyword="RecordedBlockSlabSequence"					Name="Recorded Block Slab Sequence"
 (3008,00E0) VERS="3"	VR="SQ"   VM="1"	Keyword="TreatmentSummaryMeasuredDoseReferenceSequence"		Name="Treatment Summary Measured Dose Reference Sequence "
 (3008,00F0) VERS="3"	VR="SQ"   VM="1"	Keyword="RecordedSnoutSequence"						Name="Recorded Snout Sequence"
 (3008,00F2) VERS="3"	VR="SQ"   VM="1"	Keyword="RecordedRangeShifterSequence"				Name="Recorded Range Shifter Sequence"
@@ -3777,7 +3780,7 @@
 (300A,0007) VERS="3"	VR="TM"   VM="1"	Keyword="RTPlanTime"				Name="RT Plan Time"
 (300A,0009) VERS="3"	VR="LO"   VM="1-n"	Keyword="TreatmentProtocols"			Name="Treatment Protocols"
 (300A,000A) VERS="3"	VR="CS"   VM="1"	Keyword="PlanIntent"				Name="Plan Intent"
-(300A,000B) VERS="3"	VR="LO"   VM="1-n"	Keyword="TreatmentSites"			Name="Treatment Sites"
+(300A,000B) VERS="RET"	VR="LO"   VM="1-n"	Keyword="TreatmentSites"			Name="Treatment Sites"
 (300A,000C) VERS="3"	VR="CS"   VM="1"	Keyword="RTPlanGeometry"			Name="RT Plan Geometry"
 (300A,000E) VERS="3"	VR="ST"   VM="1"	Keyword="PrescriptionDescription"		Name="Prescription Description"
 (300A,0010) VERS="3"	VR="SQ"   VM="1"	Keyword="DoseReferenceSequence"			Name="Dose Reference Sequence"
@@ -4358,7 +4361,7 @@
 (300A,0785)	VERS="3"	VR="UI"   VM="1"	Keyword="ReferencedTreatmentPositionGroupUID"	Name="Referenced Treatment Position Group UID"
 (300A,0786)	VERS="3"	VR="US"   VM="1"	Keyword="RadiationOrderIndex"	Name="Radiation Order Index"
 (300A,0787)	VERS="3"	VR="SQ"   VM="1"	Keyword="OmittedRadiationSequence"	Name="Omitted Radiation Sequence"
-(300A,0788)	VERS="3"	VR="SQ"   VM="1"	Keyword="ReasonforOmissionCodeSequence"	Name="Reason for Omission Code Sequence"
+(300A,0788)	VERS="3"	VR="SQ"   VM="1"	Keyword="ReasonForOmissionCodeSequence"	Name="Reason for Omission Code Sequence"
 (300A,0789)	VERS="3"	VR="SQ"   VM="1"	Keyword="RTDeliveryStartPatientPositionSequence"	Name="RT Delivery Start Patient Position Sequence"
 (300A,078A)	VERS="3"	VR="SQ"   VM="1"	Keyword="RTTreatmentPreparationPatientPositionSequence"	Name="RT Treatment Preparation Patient Position Sequence"
 (300A,078B)	VERS="3"	VR="SQ"   VM="1"	Keyword="ReferencedRTTreatmentPreparationSequence"	Name="Referenced RT Treatment Preparation Sequence"
@@ -4415,6 +4418,21 @@
 (300C,0111)	VERS="3"	VR="SQ"   VM="1"	Keyword="OmittedBeamTaskSequence"			Name="Omitted Beam Task Sequence"
 (300C,0112)	VERS="3"	VR="CS"   VM="1"	Keyword="ReasonForOmission"					Name="Reason for Omission"
 (300C,0113)	VERS="3"	VR="LO"   VM="1"	Keyword="ReasonForOmissionDescription"		Name="Reason for Omission Description"
+(300C,0114)	VERS="3"	VR="SQ"   VM="1"	Keyword="PrescriptionOverviewSequence"	Name="Prescription Overview Sequence"
+(300C,0115)	VERS="3"	VR="FL"   VM="1"	Keyword="TotalPrescriptionDose"	Name="Total Prescription Dose"
+(300C,0116)	VERS="3"	VR="SQ"   VM="1"	Keyword="PlanOverviewSequence"	Name="Plan Overview Sequence"
+(300C,0117)	VERS="3"	VR="US"   VM="1"	Keyword="PlanOverviewIndex"	Name="Plan Overview Index"
+(300C,0118)	VERS="3"	VR="US"   VM="1"	Keyword="ReferencedPlanOverviewIndex"	Name="Referenced Plan Overview Index"
+(300C,0119)	VERS="3"	VR="US"   VM="1"	Keyword="NumberOfFractionsIncluded"	Name="Number of Fractions Included"
+(300C,0120)	VERS="3"	VR="SQ"   VM="1"	Keyword="DoseCalibrationConditionsSequence"	Name="Dose Calibration Conditions Sequence"
+(300C,0121)	VERS="3"	VR="FD"   VM="1"	Keyword="AbsorbedDoseToMetersetRatio"	Name="Absorbed Dose to Meterset Ratio"
+(300C,0122)	VERS="3"	VR="FD"   VM="2"	Keyword="DelineatedRadiationFieldSize"	Name="Delineated Radiation Field Size"
+(300C,0123)	VERS="3"	VR="CS"   VM="1"	Keyword="DoseCalibrationConditionsVerifiedFlag"	Name="Dose Calibration Conditions Verified Flag"
+(300C,0124)	VERS="3"	VR="FD"   VM="1"	Keyword="CalibrationReferencePointDepth"	Name="Calibration Reference Point Depth"
+(300C,0125)	VERS="3"	VR="SQ"   VM="1"	Keyword="GatingBeamHoldTransitionSequence"	Name="Gating Beam Hold Transition Sequence"
+(300C,0126)	VERS="3"	VR="CS"   VM="1"	Keyword="BeamHoldTransition"				Name="Beam Hold Transition"
+(300C,0127)	VERS="3"	VR="DT"   VM="1"	Keyword="BeamHoldTransitionDateTime"		Name="Beam Hold Transition DateTime"
+(300C,0128)	VERS="3"	VR="SQ"   VM="1"	Keyword="BeamHoldOriginatingDeviceSequence"	Name="Beam Hold Originating Device Sequence"
 (300E,0002) VERS="3"	VR="CS"   VM="1"	Keyword="ApprovalStatus"			Name="Approval Status"
 (300E,0004) VERS="3"	VR="DA"   VM="1"	Keyword="ReviewDate"				Name="Review Date"
 (300E,0005) VERS="3"	VR="TM"   VM="1"	Keyword="ReviewTime"				Name="Review Time"


=====================================
libsrc/standard/elmdict/other.tpl
=====================================
@@ -2582,3 +2582,6 @@
 (0033,0022) VERS="SAM" VR="UT"   VM="1"		Owner="S-Station"	Keyword="?"			Name="?"
 (0033,0023) VERS="SAM" VR="UT"   VM="1"		Owner="S-Station"	Keyword="?"			Name="?"
 (0033,0031) VERS="SAM" VR="UT"   VM="1"		Owner="S-Station"	Keyword="?"			Name="?"
+
+(0925,0010) VERS="APE" VR="LT"   VM="1"		Owner="APERIO"		Keyword="ImageHash"	Name="Image Hash"
+(0925,0012) VERS="APE" VR="DS"   VM="1"		Owner="APERIO"		Keyword="FileSize"	Name="File Size"


=====================================
libsrc/standard/elmdictie.xml
=====================================
@@ -46,6 +46,8 @@
 	<DataElementIE><Name>ContentDescription</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>ConceptNameCodeSequence</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>AlternateContentDescriptionSequence</Name><IE>INSTANCE</IE></DataElementIE>
+	<DataElementIE><Name>UserContentLabel</Name><IE>INSTANCE</IE></DataElementIE>
+	<DataElementIE><Name>UserContentLongLabel</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>ContentCreatorName</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>ContentCreatorIdentificationCodeSequence</Name><IE>INSTANCE</IE></DataElementIE>
 	<DataElementIE><Name>Rows</Name><IE>INSTANCE</IE></DataElementIE>


=====================================
libsrc/standard/module/base.tpl
=====================================
@@ -343,25 +343,23 @@ DefineMacro="ContentIdentificationMacro" InformationEntity="Instance"
 			InvokeMacro="CodeSequenceMacro"
 		SequenceEnd
 	SequenceEnd
-	Name="ContentCreatorName"									Type="2"
-	Sequence="ContentCreatorIdentificationCodeSequence"			Type="3"	VM="1"
-		InvokeMacro="PersonIdentificationMacro"
-	SequenceEnd
+	InvokeMacro="ContentCreatorMacro"
 MacroEnd
 
-DefineMacro="EnhancedContentIdentificationMacro"
+DefineMacro="EnhancedContentIdentificationMacro" InformationEntity="Instance"
 	Name="UserContentLabel"										Type="1"
 	Name="ContentDescription"									Type="2"
-	Name="ContentCreatorName"									Type="2"
-	Sequence="ContentCreatorIdentificationCodeSequence"			Type="3"	VM="1"
-		InvokeMacro="PersonIdentificationMacro"
-	SequenceEnd
+	InvokeMacro="ContentCreatorMacro"
 MacroEnd
 
-DefineMacro="ExtendedContentIdentificationMacro"
+DefineMacro="ExtendedContentIdentificationMacro" InformationEntity="Instance"
 	Name="UserContentLongLabel"									Type="1"
 	Name="ContentDescription"									Type="2"
-	Name="ContentCreatorName"									Type="2"
+	InvokeMacro="ContentCreatorMacro"
+MacroEnd
+
+DefineMacro="ContentCreatorMacro" InformationEntity="Instance"
+	Name="ContentCreatorName"									Type="3"
 	Sequence="ContentCreatorIdentificationCodeSequence"			Type="3"	VM="1"
 		InvokeMacro="PersonIdentificationMacro"
 	SequenceEnd
@@ -2765,7 +2763,7 @@ Module="SegmentationImage"
 	Sequence="SegmentSequence"								Type="1"	VM="1-n"
 		InvokeMacro="SegmentDescriptionMacro"
 		Name="SegmentAlgorithmName"							Type="1C"	Condition="SegmentAlgorithmTypeIsNotManual"
-		Sequence="SegmentationAlgorithmIdentificationSequence"	Type="3"	VM="1"
+		Sequence="SegmentationAlgorithmIdentificationSequence"	Type="3"	VM="1-n"
 			InvokeMacro="AlgorithmIdentificationMacro"									BaselineContextID="7162"
 		SequenceEnd
 		Name="RecommendedDisplayGrayscaleValue"				Type="3"
@@ -2794,6 +2792,7 @@ DefineMacro="SegmentDescriptionMacro" InformationEntity="Instance"
 		InvokeMacro="SOPInstanceReferenceMacro"
 		Name="ReferencedROINumber"								Type="1C"	Condition="ReferencedSOPClassUIDIsRTStructureSetStorage"
 	SequenceEnd
+	InvokeMacro="ContentCreatorMacro"
 MacroEnd
 
 DefineMacro="SegmentationMacro" InformationEntity="FunctionalGroup"
@@ -2811,7 +2810,7 @@ Module="SurfaceSegmentation"
 		Name="SurfaceCount"														Type="1"	NotZeroError="" 
 		Sequence="ReferencedSurfaceSequence"									Type="1"	VM="1-n"				# should check that number of items equals SurfaceCount :(
 			Name="ReferencedSurfaceNumber"										Type="1"	VM="1" 	NotZeroError=""	# should check that SurfaceNumber exists in SurfaceSequence :(
-			Sequence="SegmentSurfaceGenerationAlgorithmIdentificationSequence"	Type="1"	VM="1"
+			Sequence="SegmentSurfaceGenerationAlgorithmIdentificationSequence"	Type="1"	VM="1-n"
 				InvokeMacro="AlgorithmIdentificationMacro"									BaselineContextID="7162"
 			SequenceEnd
 			Sequence="SegmentSurfaceSourceInstanceSequence"						Type="2"	VM="0-n"


=====================================
libsrc/standard/module/rt.tpl
=====================================
@@ -647,8 +647,8 @@ Module="RTBeams"
 			Name="BlockNumber"									Type="1"
 			Name="BlockName"									Type="3"
 			Name="MaterialID"									Type="2"
-			Name="BlockThickness"								Type="2"
-			Name="BlockTransmission"							Type="2"
+			Name="BlockThickness"								Type="2C"	Condition="MaterialIDNotEmpty" mbpo="true"
+			Name="BlockTransmission"							Type="2C"	Condition="MaterialIDEmptyOrAbsent" mbpo="true"
 			Name="BlockNumberOfPoints"							Type="2"
 			Name="BlockData"									Type="2"
 		SequenceEnd


=====================================
libsrc/standard/strval/base.tpl
=====================================
@@ -271,6 +271,7 @@ StringValues="MiscellaneousCodingSchemeDesignators"	{
 	99HOLXDXA = Hologic DXA,
 	99KINETDX = Siemens Acuson Ultrasound,
 	99NUMA = NUMA,
+	99_APERIO = Leica Aperio,
 	ACR = ACR Index for Radiological Diagnosis,
 	ART = WHO Adverse Reaction terms,
 	AS4 = ASTM,


=====================================
libsrc/standard/strval/sr.tpl
=====================================
@@ -106,6 +106,7 @@ StringValues="MammographyCADSRValueTypes" {
 	NUM,
 	DATE,
 	TIME,
+	UIDREF,
 	PNAME,
 	SCOORD,
 	COMPOSITE,


=====================================
libsrc/support/condn.awk
=====================================
@@ -186,8 +186,8 @@ NR==1	{
 	sequencepresentinpathfirstitemhasitems=0
 	sequencepresentinpathfromrootfirstitemhasitems=""
 	if (match($0,"SequencePresentInPathFromRootFirstItemHasItems=\"[^\"]*\"")) {
-		sequencepresentinpathfirstitem=1;
-		sequencepresentinpathfromrootfirstitem=substr($0,RSTART+length("SequencePresentInPathFromRootFirstItemHasItems=\""),
+		sequencepresentinpathfirstitemhasitems=1;
+		sequencepresentinpathfromrootfirstitemhasitems=substr($0,RSTART+length("SequencePresentInPathFromRootFirstItemHasItems=\""),
 			RLENGTH-length("SequencePresentInPathFromRootFirstItemHasItems=\"")-1);
 	}
 



View it on GitLab: https://salsa.debian.org/med-team/dicom3tools/-/compare/369eb7a1642883087a69bd7e6dd3af319024af96...0a8040d6b745504c80ae2e56d10f8da59173dd47

-- 
View it on GitLab: https://salsa.debian.org/med-team/dicom3tools/-/compare/369eb7a1642883087a69bd7e6dd3af319024af96...0a8040d6b745504c80ae2e56d10f8da59173dd47
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20220222/c60e46c6/attachment-0001.htm>


More information about the debian-med-commit mailing list