[med-svn] [Git][med-team/dicom3tools][master] 4 commits: New upstream version 1.00~20220120135102
Mathieu Malaterre (@malat)
gitlab at salsa.debian.org
Mon Jan 24 07:31:50 GMT 2022
Mathieu Malaterre pushed to branch master 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
- - - - -
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,11 @@
+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) unstable; 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/a511f6e95c05b4d0b182f8c65589c9d3f2d3c53d...ac28fa3d2573929e4a79a74e7ae839ddb4ac42c5
--
View it on GitLab: https://salsa.debian.org/med-team/dicom3tools/-/compare/a511f6e95c05b4d0b182f8c65589c9d3f2d3c53d...ac28fa3d2573929e4a79a74e7ae839ddb4ac42c5
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/20220124/0cac9fbf/attachment-0001.htm>
More information about the debian-med-commit
mailing list