diff -Nru dicom3tools-1.00~20131005/CHANGES dicom3tools-1.00~20140105/CHANGES --- dicom3tools-1.00~20131005/CHANGES 2013-10-05 18:54:28.000000000 +0000 +++ dicom3tools-1.00~20140105/CHANGES 2014-01-05 13:05:11.000000000 +0000 @@ -1,3 +1,31 @@ +140105: libsrc/standard/condn.tpl,iodcomp/ct.tpl,mr.tpl,module/base.tpl,ct.tpl,mr.tpl: Add final text of legacy converted enhanced CT and MR (Sup 157) + +131224: libsrc/standard/elmdict/diconde.tpl: final names of IQI elements + +131211: libsrc/standard/elmdict/other.tpl: Add Soredex private element from example and conformance statement, and render OB as string + +131211: libsrc/include/dctool/elmdict.h,src/dctool/attrtypo.cc,elmdict.cc,elmentry.h,standard/elmdict/agfa.tpl,support/elmdict.awk: update Mitra annotation private elements, use OB VR per conformance statement and samples; add RenderAsString field to dictionary and methods and use for small OB VR dump + +131208: libsrc/standard/elmdict/siemens.tpl: add ABVS private data elements from S2000 CS and samples + +131129: libsrc/standard/elmdict/diconde.tpl: add IQI data elements from revision of ASTM E2767-11 + +131123: libsrc/standard/elmdict/other.tpl: Add Instrumentarium private element from conformance statement for CliniView + +131120: module,strval/xaxrf.tpl: Add volume based calculation technique for tomosynthesis (CP 1299) + +131120: module/base.tpl,ct.tpl,mr.tpl,pet.tpl,xaxrf.tpl: Make Shared Functional Group Sequence Type 1 again per Type 1 SQ Empty Items in Functional Groups (CP 1274) + +131023: libsrc/standard/module/base.tpl: check Segment Number is not zero + +131020: libsrc/standard/elmdict/philips.tpl: Some more descriptions for Philips private MR data elements + +131019: libsrc/standard/condn.tpl,module/base.tpl: Implement conditions in Pixel Measures Sequence based on Volumetric Properties values + +131018: libsrc/standard/elmdict/dicom3.tpl,module/base.tpl: Add Used Segments Sequence to Spatial Registration Module (CP 1268) + +131015: libsrc/standard/sopcl.tpl,elmdict/dicom3.tpl: Add data elements and SOP Class for Corneal Topography Map (Sup 168) + 131005: INSTALL, config/Configure: Handle bad cpp that Apple ships with XCode 5, and change in g++ version string 131005: support/testapp: Filter out spurious assertion messages from Apple LLVM version 5.0, which interferes with comparison with previous logs diff -Nru dicom3tools-1.00~20131005/VERSION dicom3tools-1.00~20140105/VERSION --- dicom3tools-1.00~20131005/VERSION 2013-10-05 16:19:27.000000000 +0000 +++ dicom3tools-1.00~20140105/VERSION 2014-01-05 13:05:47.000000000 +0000 @@ -1 +1 @@ -1.00.snapshot.20131005 +1.00.snapshot.20140105 diff -Nru dicom3tools-1.00~20131005/debian/changelog dicom3tools-1.00~20140105/debian/changelog --- dicom3tools-1.00~20131005/debian/changelog 2013-10-08 15:40:28.000000000 +0000 +++ dicom3tools-1.00~20140105/debian/changelog 2014-01-13 13:04:24.000000000 +0000 @@ -1,3 +1,10 @@ +dicom3tools (1.00~20140105-1) unstable; urgency=low + + * New upstream + * Update private attributes + New CPs + + -- Mathieu Malaterre Mon, 13 Jan 2014 14:04:13 +0100 + dicom3tools (1.00~20131005-1) unstable; urgency=low * New upstream diff -Nru dicom3tools-1.00~20131005/libsrc/include/dctool/elmdict.h dicom3tools-1.00~20140105/libsrc/include/dctool/elmdict.h --- dicom3tools-1.00~20131005/libsrc/include/dctool/elmdict.h 2012-05-04 11:14:29.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/include/dctool/elmdict.h 2013-12-11 12:03:27.000000000 +0000 @@ -20,6 +20,7 @@ const char * getKeyword(Tag t) const; bool getTag(const char *keyword,Tag& tr) const; bool isRetired(Tag& t) const; + bool isRenderAsString(Tag& t) const; void addOwner(Tag t,const char *owner); bool hasOwner(Tag& t) const; diff -Nru dicom3tools-1.00~20131005/libsrc/src/dctool/attrtypo.cc dicom3tools-1.00~20140105/libsrc/src/dctool/attrtypo.cc --- dicom3tools-1.00~20131005/libsrc/src/dctool/attrtypo.cc 2008-09-28 13:25:35.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/src/dctool/attrtypo.cc 2013-12-11 12:32:52.000000000 +0000 @@ -1,5 +1,7 @@ #include "attr.h" #include "attrtypo.h" +#include "attrtag.h" +#include "elmdict.h" #include "srcsink.h" #include "convtype.h" #include "tobyte.h" @@ -55,9 +57,18 @@ OtherByteSmallNonPixelAttributeBase::write(TextOutputStream& stream,ElementDictionary *dict,bool verbose,bool showUsedAndIE) { Attribute::writeBase(stream,dict,verbose,showUsedAndIE); - stream << "["; - writeData(stream); - stream << "] "; + Tag t = getTag(); + if (dict->isRenderAsString(t)) { + stream << "<"; + stream << data; + if (strlen((const char *)data)%2) stream << ' '; // pad for consistency with string attribute writes + stream << "> "; + } + else { + stream << "["; + writeData(stream); + stream << "] "; + } return stream; } diff -Nru dicom3tools-1.00~20131005/libsrc/src/dctool/elmdict.cc dicom3tools-1.00~20140105/libsrc/src/dctool/elmdict.cc --- dicom3tools-1.00~20131005/libsrc/src/dctool/elmdict.cc 2012-05-04 11:14:28.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/src/dctool/elmdict.cc 2013-12-11 12:04:10.000000000 +0000 @@ -195,6 +195,13 @@ return e && e->Retired; } +bool +ElementDictionary::isRenderAsString(Tag& t) const +{ + const ElementDictionaryTableEntry *e = (*this)[t]; + return e && e->RenderAsString; +} + void ElementDictionary::addOwner(Tag t,const char *owner) { diff -Nru dicom3tools-1.00~20131005/libsrc/src/dctool/elmentry.h dicom3tools-1.00~20140105/libsrc/src/dctool/elmentry.h --- dicom3tools-1.00~20131005/libsrc/src/dctool/elmentry.h 2006-07-04 17:34:58.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/src/dctool/elmentry.h 2013-12-11 12:03:33.000000000 +0000 @@ -13,6 +13,7 @@ const char * Keyword; const char * Description; bool Retired; + bool RenderAsString; }; #endif /* __Header_elmentry__ */ diff -Nru dicom3tools-1.00~20131005/libsrc/standard/condn.tpl dicom3tools-1.00~20140105/libsrc/standard/condn.tpl --- dicom3tools-1.00~20131005/libsrc/standard/condn.tpl 2013-09-24 19:27:38.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/condn.tpl 2014-01-05 11:27:10.000000000 +0000 @@ -98,6 +98,14 @@ Element="SOPClassUID" StringConstantFromRootAttribute="EnhancedCTImageStorageSOPClassUID" ConditionEnd +Condition="LegacyConvertedEnhancedCTImageInstance" + Element="SOPClassUID" StringConstantFromRootAttribute="LegacyConvertedEnhancedCTImageStorageSOPClassUID" +ConditionEnd + +Condition="NotLegacyConvertedCT" + Element="SOPClassUID" Modifier="Not" StringConstantFromRootAttribute="LegacyConvertedEnhancedCTImageStorageSOPClassUID" +ConditionEnd + Condition="PrivatePixelMedLegacyConvertedEnhancedCTImageInstance" Element="SOPClassUID" StringConstantFromRootAttribute="PrivatePixelMedLegacyConvertedEnhancedCTImageStorageSOPClassUID" ConditionEnd @@ -118,6 +126,14 @@ Element="SOPClassUID" StringConstantFromRootAttribute="EnhancedMRColorImageStorageSOPClassUID" ConditionEnd +Condition="LegacyConvertedEnhancedMRImageInstance" + Element="SOPClassUID" StringConstantFromRootAttribute="LegacyConvertedEnhancedMRImageStorageSOPClassUID" +ConditionEnd + +Condition="NotLegacyConvertedMR" + Element="SOPClassUID" Modifier="Not" StringConstantFromRootAttribute="LegacyConvertedEnhancedMRImageStorageSOPClassUID" +ConditionEnd + Condition="PrivatePixelMedLegacyConvertedEnhancedMRImageInstance" Element="SOPClassUID" StringConstantFromRootAttribute="PrivatePixelMedLegacyConvertedEnhancedMRImageStorageSOPClassUID" ConditionEnd @@ -2571,6 +2587,24 @@ Element="ImageType" ValueSelector="0" StringValueFromRootAttribute="MIXED" ConditionEnd +Condition="ImageTypeValue1OriginalOrMixedAndNotLegacyConvertedMR" + Element="SOPClassUID" Modifier="Not" StringConstantFromRootAttribute="LegacyConvertedEnhancedMRImageStorageSOPClassUID" + ( + Element="ImageType" ValueSelector="0" StringValueFromRootAttribute="ORIGINAL" + Element="ImageType" ValueSelector="0" StringValueFromRootAttribute="MIXED" + ) Operator="And" +} +ConditionEnd + +Condition="ImageTypeValue1OriginalOrMixedAndNotLegacyConvertedCT" + Element="SOPClassUID" Modifier="Not" StringConstantFromRootAttribute="LegacyConvertedEnhancedCTImageStorageSOPClassUID" + ( + Element="ImageType" ValueSelector="0" StringValueFromRootAttribute="ORIGINAL" + Element="ImageType" ValueSelector="0" StringValueFromRootAttribute="MIXED" + ) Operator="And" +} +ConditionEnd + Condition="ImageTypeValue1OriginalOrMixedAndRectilinear" Element="ImageType" ValueSelector="0" Modifier="Not" StringValueFromRootAttribute="DERIVED" Element="GeometryOfKSpaceTraversal" Operator="And" StringValueFromRootAttribute="RECTILINEAR" @@ -6041,3 +6075,21 @@ Element="SpatialTransformOfDose" StringValue="NON_RIGID" ConditionEnd +# does not check that EVERY PerFrameFunctionalGroupsSequence item has it, if not in Shared, but better than no check at all :( +Condition="PixelSpacingNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndVolumetricPropertiesIsNotDistortedSampled" + Element="PixelSpacing" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence" + Element="PixelSpacing" Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence" + Element="VolumetricProperties" Operator="And" Modifier="Not" StringValueFromRootAttribute="DISTORTED" + Element="VolumetricProperties" Operator="And" Modifier="Not" StringValueFromRootAttribute="SAMPLED" +ConditionEnd + +# does not check that EVERY PerFrameFunctionalGroupsSequence item has it, if not in Shared, but better than no check at all :( +Condition="SliceThicknessNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndVolumetricPropertiesIsVolumeOrSampled" + Element="SliceThickness" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence" + Element="SliceThickness" Operator="And" Modifier="Not" ElementPresentInPathFromRoot="PerFrameFunctionalGroupsSequence" + ( + Element="VolumetricProperties" StringValueFromRootAttribute="VOLUME" + Element="VolumetricProperties" Operator="Or" StringValueFromRootAttribute="SAMPLED" + ) Operator="And" +ConditionEnd + diff -Nru dicom3tools-1.00~20131005/libsrc/standard/elmdict/agfa.tpl dicom3tools-1.00~20140105/libsrc/standard/elmdict/agfa.tpl --- dicom3tools-1.00~20131005/libsrc/standard/elmdict/agfa.tpl 2013-04-16 09:52:25.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/elmdict/agfa.tpl 2013-12-11 12:42:47.000000000 +0000 @@ -55,19 +55,35 @@ (0031,0000) VERS="MIT" VR="CS" VM="1" Owner="AGFA PACS Archive Mirroring 1.0" Keyword="?" Name="?" (0031,0001) VERS="MIT" VR="UL" VM="1" Owner="AGFA PACS Archive Mirroring 1.0" Keyword="?" Name="?" -(0029,0000) VERS="MIT" VR="LO" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="?" Name="?" -(0029,0001) VERS="MIT" VR="LO" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="?" Name="?" -(0029,0002) VERS="MIT" VR="LO" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="?" Name="?" -(0029,0003) VERS="MIT" VR="LO" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="?" Name="?" +(0029,0000) VERS="MIT" VR="CS" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="Rotation" Name="Rotation" +(0029,0001) VERS="MIT" VR="LO" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="WindowWidth" Name="Window Width" +(0029,0002) VERS="MIT" VR="LO" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="WindowCentre" Name="Window Centre" +(0029,0003) VERS="MIT" VR="IS" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="Invert" Name="Invert" +(0029,0004) VERS="MIT" VR="IS" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="HasTabstop" Name="Has Tabstop" +(0029,0005) VERS="MIT" VR="CS" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="SmoothRotation" Name="Smooth Rotation" (0029,0010) VERS="MIT" VR="CS" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="?" Name="?" (0029,0011) VERS="MIT" VR="CS" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="?" Name="?" (0029,0012) VERS="MIT" VR="CS" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="?" Name="?" (0029,0013) VERS="MIT" VR="CS" VM="1" Owner="MITRA PRESENTATION 1.0" Keyword="?" Name="?" -(0029,0000) VERS="MIT" VR="LO" VM="1" Owner="MITRA OBJECT DOCUMENT 1.0" Keyword="?" Name="?" +(0029,0000) VERS="MIT" VR="OB" VM="1" Owner="MITRA OBJECT DOCUMENT 1.0" Keyword="IMPAXObjectDocument" Name="IMPAX Object Document" RenderAsString="true" +(0029,0001) VERS="MIT" VR="OB" VM="1" Owner="MITRA OBJECT DOCUMENT 1.0" Keyword="IMPAXMarkupXMLStored" Name="IMPAX Markup XML Stored" RenderAsString="true" -(0029,0000) VERS="MIT" VR="LO" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="?" Name="?" -(0029,0001) VERS="MIT" VR="LO" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="?" Name="?" +(0029,0000) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup1" Name="Markup1" RenderAsString="true" +(0029,0001) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup2" Name="Markup2" RenderAsString="true" +(0029,0002) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup3" Name="Markup3" RenderAsString="true" +(0029,0003) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup4" Name="Markup4" RenderAsString="true" +(0029,0004) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup5" Name="Markup5" RenderAsString="true" +(0029,0005) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup6" Name="Markup6" RenderAsString="true" +(0029,0006) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup7" Name="Markup7" RenderAsString="true" +(0029,0007) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup8" Name="Markup8" RenderAsString="true" +(0029,0008) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup9" Name="Markup9" RenderAsString="true" +(0029,0009) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup10" Name="Markup10" RenderAsString="true" +(0029,0010) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup11" Name="Markup11" RenderAsString="true" +(0029,0011) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup12" Name="Markup12" RenderAsString="true" +(0029,0012) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup13" Name="Markup13" RenderAsString="true" +(0029,0013) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup14" Name="Markup14" RenderAsString="true" +(0029,0014) VERS="MIT" VR="OB" VM="1-n" Owner="MITRA MARKUP 1.0" Keyword="Markup15" Name="Markup14" RenderAsString="true" (0029,0011) VERS="AGFA" VR="CS" VM="1" Owner="AgilityRuntime" Keyword="?" Name="?" (0029,0012) VERS="AGFA" VR="US" VM="1" Owner="AgilityRuntime" Keyword="?" Name="?" diff -Nru dicom3tools-1.00~20131005/libsrc/standard/elmdict/dicom3.tpl dicom3tools-1.00~20140105/libsrc/standard/elmdict/dicom3.tpl --- dicom3tools-1.00~20131005/libsrc/standard/elmdict/dicom3.tpl 2013-09-14 14:19:41.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/elmdict/dicom3.tpl 2013-10-18 12:07:36.000000000 +0000 @@ -2039,6 +2039,36 @@ (0046,0145) VERS="3" VR="SQ" VM="1" Keyword="ReferencedRefractiveMeasurementsSequence" Name="Referenced Refractive Measurements Sequence" (0046,0146) VERS="3" VR="FD" VM="1" Keyword="SpherePower" Name="Sphere Power" (0046,0147) VERS="3" VR="FD" VM="1" Keyword="CylinderPower" Name="Cylinder Power" +(0046,0201) VERS="3" VR="CS" VM="1" Keyword="CornealTopographySurface" Name="Corneal Topography Surface" +(0046,0202) VERS="3" VR="FL" VM="2" Keyword="CornealVertexLocation" Name="Corneal Vertex Location" +(0046,0203) VERS="3" VR="FL" VM="1" Keyword="PupilCentroidXCoordinate" Name="Pupil Centroid X-Coordinate" +(0046,0204) VERS="3" VR="FL" VM="1" Keyword="PupilCentroidYCoordinate" Name="Pupil Centroid Y-Coordinate" +(0046,0205) VERS="3" VR="FL" VM="1" Keyword="EquivalentPupilRadius" Name="Equivalent Pupil Radius" +(0046,0207) VERS="3" VR="SQ" VM="1" Keyword="CornealTopographyMapTypeCodeSequence" Name="Corneal Topography Map Type Code Sequence" +(0046,0208) VERS="3" VR="IS" VM="2-2n" Keyword="VerticesOfTheOutlineOfPupil" Name="Vertices of the Outline of Pupil" +(0046,0210) VERS="3" VR="SQ" VM="1" Keyword="CornealTopographyMappingNormalsSequence" Name="Corneal Topography Mapping Normals Sequence" +(0046,0211) VERS="3" VR="SQ" VM="1" Keyword="MaximumCornealCurvatureSequence" Name="Maximum Corneal Curvature Sequence" +(0046,0212) VERS="3" VR="FL" VM="1" Keyword="MaximumCornealCurvature" Name="Maximum Corneal Curvature" +(0046,0213) VERS="3" VR="FL" VM="2" Keyword="MaximumCornealCurvatureLocation" Name="Maximum Corneal Curvature Location" +(0046,0215) VERS="3" VR="SQ" VM="1" Keyword="MinimumKeratometricSequence" Name="Minimum Keratometric Sequence" +(0046,0218) VERS="3" VR="SQ" VM="1" Keyword="SimulatedKeratometricCylinderSequence" Name="Simulated Keratometric Cylinder Sequence" +(0046,0220) VERS="3" VR="FL" VM="1" Keyword="AverageCornealPower" Name="Average Corneal Power" +(0046,0224) VERS="3" VR="FL" VM="1" Keyword="CornealISValue" Name="Corneal I-S Value" +(0046,0227) VERS="3" VR="FL" VM="1" Keyword="AnalyzedArea" Name="Analyzed Area" +(0046,0230) VERS="3" VR="FL" VM="1" Keyword="SurfaceRegularityIndex" Name="Surface Regularity Index" +(0046,0232) VERS="3" VR="FL" VM="1" Keyword="SurfaceAsymmetryIndex" Name="Surface Asymmetry Index" +(0046,0234) VERS="3" VR="FL" VM="1" Keyword="CornealEccentricityIndex" Name="Corneal Eccentricity Index" +(0046,0236) VERS="3" VR="FL" VM="1" Keyword="KeratoconusPredictionIndex" Name="Keratoconus Prediction Index" +(0046,0238) VERS="3" VR="FL" VM="1" Keyword="DecimalPotentialVisualAcuity" Name="Decimal Potential Visual Acuity" +(0046,0242) VERS="3" VR="CS" VM="1" Keyword="CornealTopographyMapQualityEvaluation" Name="Corneal Topography Map Quality Evaluation" +(0046,0244) VERS="3" VR="SQ" VM="1" Keyword="SourceImageCornealProcessedDataSequence" Name="Source Image Corneal Processed Data Sequence" +(0046,0247) VERS="3" VR="FL" VM="3" Keyword="CornealPointLocation" Name="Corneal Point Location" +(0046,0248) VERS="3" VR="CS" VM="1" Keyword="CornealPointEstimated" Name="Corneal Point Estimated" +(0046,0249) VERS="3" VR="FL" VM="1" Keyword="AxialPower" Name="Axial Power" +(0046,0250) VERS="3" VR="FL" VM="1" Keyword="TangentialPower" Name="Tangential Power" +(0046,0251) VERS="3" VR="FL" VM="1" Keyword="RefractivePower" Name="Refractive Power" +(0046,0252) VERS="3" VR="FL" VM="1" Keyword="RelativeElevation" Name="Relative Elevation" +(0046,0253) VERS="3" VR="FL" VM="1" Keyword="CornealWavefront" Name="Corneal Wavefront" (0048,0001) VERS="3" VR="FL" VM="1" Keyword="ImagedVolumeWidth" Name="Imaged Volume Width" (0048,0002) VERS="3" VR="FL" VM="1" Keyword="ImagedVolumeHeight" Name="Imaged Volume Height" (0048,0003) VERS="3" VR="FL" VM="1" Keyword="ImagedVolumeDepth" Name="Imaged Volume Depth" @@ -2215,6 +2245,7 @@ (0062,000F) VERS="3" VR="SQ" VM="1" Keyword="SegmentedPropertyTypeCodeSequence" Name="Segmented Property Type Code Sequence" (0062,0010) VERS="3" VR="CS" VM="1" Keyword="SegmentationFractionalType" Name="Segmentation Fractional Type" (0062,0011) VERS="3" VR="SQ" VM="1" Keyword="SegmentedPropertyTypeModifierCodeSequence" Name="Segmented Property Type Modifier Code Sequence" +(0062,0012) VERS="3" VR="SQ" VM="1" Keyword="UsedSegmentsSequence" Name="Used Segments Sequence" (0064,0002) VERS="3" VR="SQ" VM="1" Keyword="DeformableRegistrationSequence" Name="Deformable Registration Sequence" (0064,0003) VERS="3" VR="UI" VM="1" Keyword="SourceFrameOfReferenceUID" Name="Source Frame of Reference UID" (0064,0005) VERS="3" VR="SQ" VM="1" Keyword="DeformableRegistrationGridSequence" Name="Deformable Registration Grid Sequence" diff -Nru dicom3tools-1.00~20131005/libsrc/standard/elmdict/diconde.tpl dicom3tools-1.00~20140105/libsrc/standard/elmdict/diconde.tpl --- dicom3tools-1.00~20131005/libsrc/standard/elmdict/diconde.tpl 2013-09-17 11:13:24.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/elmdict/diconde.tpl 2013-12-24 14:47:57.000000000 +0000 @@ -144,6 +144,9 @@ (0014,409C) VERS="DICONDE" VR="DS" VM="1" Keyword="TranslationRateX" Name="Translation Rate X" (0014,409D) VERS="DICONDE" VR="DS" VM="1" Keyword="TranslationRateY" Name="Translation Rate Y" (0014,409F) VERS="DICONDE" VR="DS" VM="1" Keyword="ChannelOverlap" Name="Channel Overlap" +(0014,40A0) VERS="DICONDE" VR="LO" VM="1" Keyword="ImageQualityIndicatorType" Name="Image Quality Indicator Type" +(0014,40A1) VERS="DICONDE" VR="LO" VM="1" Keyword="ImageQualityIndicatorMaterial" Name="Image Quality Indicator Material" +(0014,40A2) VERS="DICONDE" VR="LO" VM="1" Keyword="ImageQualityIndicatorSize" Name="Image Quality Indicator Size" (0014,5002) VERS="DICONDE" VR="IS" VM="1" Keyword="LINACEnergy" Name="LINAC Energy" (0014,5004) VERS="DICONDE" VR="IS" VM="1" Keyword="LINACOutput" Name="LINAC Output" diff -Nru dicom3tools-1.00~20131005/libsrc/standard/elmdict/other.tpl dicom3tools-1.00~20140105/libsrc/standard/elmdict/other.tpl --- dicom3tools-1.00~20131005/libsrc/standard/elmdict/other.tpl 2013-06-19 11:55:59.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/elmdict/other.tpl 2013-12-11 14:21:33.000000000 +0000 @@ -1820,4 +1820,7 @@ (300B,000E) VERS="ONC" VR="UN" VM="1" Owner="PRIVATE_CODE_STRING_300B" Keyword="ModificationValue" Name="Modification Value" (300B,000F) VERS="ONC" VR="UN" VM="1" Owner="PRIVATE_CODE_STRING_300B" Keyword="TransformationMatrix" Name="Transformation Matrix" +(000D,0000) VERS="INS" VR="OB" VM="1" Owner="INSTRU_PRIVATE_IDENT_CODE" Keyword="ImageXmlData" Name="Image Xml Data" RenderAsString="true" +(000D,0000) VERS="INS" VR="OB" VM="1" Owner="SCANORA_PRIVATE_IDENT_CODE" Keyword="ImageXmlData" Name="Image Xml Data" RenderAsString="true" + diff -Nru dicom3tools-1.00~20131005/libsrc/standard/elmdict/philips.tpl dicom3tools-1.00~20140105/libsrc/standard/elmdict/philips.tpl --- dicom3tools-1.00~20131005/libsrc/standard/elmdict/philips.tpl 2013-04-04 11:35:13.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/elmdict/philips.tpl 2013-10-20 19:59:44.000000000 +0000 @@ -776,16 +776,16 @@ (2001,007a) VERS="PMFE" VR="FL" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="?" Name="?" (2001,007b) VERS="PMFE" VR="IS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="AcquisitionNumber" Name="Acquisition Number" (2001,0080) VERS="" VR="LO" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="?" Name="?" -(2001,0081) VERS="PMFE" VR="IS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="NumberOfDynamicScans" Name="Number of Dynamic Scans" -(2001,0082) VERS="PMFE" VR="IS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="?" Name="?" +(2001,0081) VERS="PMFE" VR="IS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="NumberOfDynamicScans" Name="Number of Dynamic Scans" +(2001,0082) VERS="PMFE" VR="IS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="EchoTrainLength" Name="Echo Train Length" (2001,0083) VERS="PMFE" VR="DS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="ImagingFrequency" Name="Imaging Frequency" -(2001,0084) VERS="PMFE" VR="DS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="?" Name="?" +(2001,0084) VERS="PMFE" VR="DS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="InversionTime" Name="Inversion Time" (2001,0085) VERS="PMFE" VR="DS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="MagneticFieldStrength" Name="Magnetic Field Strength" (2001,0086) VERS="PMFE" VR="IS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="?" Name="?" (2001,0087) VERS="PMFE" VR="SH" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="ImagedNucleus" Name="Imaged Nucleus" -(2001,0088) VERS="PMFE" VR="DS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="?" Name="?" -(2001,0089) VERS="PMFE" VR="DS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="?" Name="?" -(2001,008a) VERS="PMFE" VR="DS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="?" Name="?" +(2001,0088) VERS="PMFE" VR="DS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="NumberOfAverages" Name="Number of Averages" +(2001,0089) VERS="PMFE" VR="DS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="PhaseFOVPercent" Name="Phase FOV Percent" +(2001,008a) VERS="PMFE" VR="DS" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="SamplingPercent" Name="Sampling Percent" (2001,008b) VERS="PMFE" VR="SH" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="?" Name="?" (2001,0090) VERS="" VR="LO" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="?" Name="?" (2001,0091) VERS="" VR="LO" VM="1" Owner="PHILIPS IMAGING DD 001" Keyword="?" Name="?" @@ -894,13 +894,16 @@ (2001,007a) VERS="PMFE" VR="FL" VM="1" Owner="Philips Imaging DD 001" Keyword="?" Name="?" (2001,007b) VERS="PMFE" VR="IS" VM="1" Owner="Philips Imaging DD 001" Keyword="AcquisitionNumber" Name="Acquisition Number" (2001,0080) VERS="" VR="LO" VM="1" Owner="Philips Imaging DD 001" Keyword="?" Name="?" -(2001,0081) VERS="PMFE" VR="IS" VM="1" Owner="Philips Imaging DD 001" Keyword="NumberOfDynamicScans" Name="Number of Dynamic Scans" -(2001,0082) VERS="PMFE" VR="IS" VM="1" Owner="Philips Imaging DD 001" Keyword="?" Name="?" +(2001,0081) VERS="PMFE" VR="IS" VM="1" Owner="Philips Imaging DD 001" Keyword="NumberOfDynamicScans" Name="Number of Dynamic Scans" +(2001,0082) VERS="PMFE" VR="IS" VM="1" Owner="Philips Imaging DD 001" Keyword="EchoTrainLength" Name="Echo Train Length" (2001,0083) VERS="PMFE" VR="DS" VM="1" Owner="Philips Imaging DD 001" Keyword="ImagingFrequency" Name="Imaging Frequency" -(2001,0084) VERS="PMFE" VR="DS" VM="1" Owner="Philips Imaging DD 001" Keyword="?" Name="?" +(2001,0084) VERS="PMFE" VR="DS" VM="1" Owner="Philips Imaging DD 001" Keyword="InversionTime" Name="Inversion Time" (2001,0085) VERS="PMFE" VR="DS" VM="1" Owner="Philips Imaging DD 001" Keyword="MagneticFieldStrength" Name="Magnetic Field Strength" (2001,0086) VERS="PMFE" VR="IS" VM="1" Owner="Philips Imaging DD 001" Keyword="?" Name="?" (2001,0087) VERS="PMFE" VR="SH" VM="1" Owner="Philips Imaging DD 001" Keyword="ImagedNucleus" Name="Imaged Nucleus" +(2001,0088) VERS="PMFE" VR="DS" VM="1" Owner="Philips Imaging DD 001" Keyword="NumberOfAverages" Name="Number of Averages" +(2001,0089) VERS="PMFE" VR="DS" VM="1" Owner="Philips Imaging DD 001" Keyword="PhaseFOVPercent" Name="Phase FOV Percent" +(2001,008a) VERS="PMFE" VR="DS" VM="1" Owner="Philips Imaging DD 001" Keyword="SamplingPercent" Name="Sampling Percent" (2001,0088) VERS="PMFE" VR="DS" VM="1" Owner="Philips Imaging DD 001" Keyword="?" Name="?" (2001,0089) VERS="PMFE" VR="DS" VM="1" Owner="Philips Imaging DD 001" Keyword="?" Name="?" (2001,008a) VERS="PMFE" VR="DS" VM="1" Owner="Philips Imaging DD 001" Keyword="?" Name="?" diff -Nru dicom3tools-1.00~20131005/libsrc/standard/elmdict/siemens.tpl dicom3tools-1.00~20140105/libsrc/standard/elmdict/siemens.tpl --- dicom3tools-1.00~20131005/libsrc/standard/elmdict/siemens.tpl 2012-05-05 16:58:52.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/elmdict/siemens.tpl 2013-12-08 14:23:01.000000000 +0000 @@ -3329,7 +3329,12 @@ (300B,00F0) VERS="SSPI" VR="DS" VM="1" Owner="SIEMENS MED SYNGO RT" Keyword="DoseStatisticalUncertainty" Name="Dose Statistical Uncertainty" (300B,00F1) VERS="SSPI" VR="CS" VM="1" Owner="SIEMENS MED SYNGO RT" Keyword="InterpretedRadiationType" Name="Interpreted Radiation Type" -(7FD1,0001) VERS="SSPI" VR="OB" VM="1" Owner="SIEMENS SYNGO ULTRA-SOUND TOYON DATA STREAMING" Keyword="Padding" Name="Padding" -(7FD1,0009) VERS="SSPI" VR="OB" VM="1" Owner="SIEMENS SYNGO ULTRA-SOUND TOYON DATA STREAMING" Keyword="VersionID" Name="Version ID" -(7FD1,0010) VERS="SSPI" VR="LO" VM="1" Owner="SIEMENS SYNGO ULTRA-SOUND TOYON DATA STREAMING" Keyword="Payload" Name="Payload" -(7FD1,0011) VERS="SSPI" VR="LO" VM="1" Owner="SIEMENS SYNGO ULTRA-SOUND TOYON DATA STREAMING" Keyword="AfterPayload" Name="After Payload" +(7FD1,0001) VERS="SSPI" VR="OB" VM="1" Owner="SIEMENS SYNGO ULTRA-SOUND TOYON DATA STREAMING" Keyword="Padding" Name="Padding" +(7FD1,0009) VERS="SSPI" VR="OB" VM="1" Owner="SIEMENS SYNGO ULTRA-SOUND TOYON DATA STREAMING" Keyword="VersionID" Name="Version ID" +(7FD1,0010) VERS="SSPI" VR="LO" VM="1" Owner="SIEMENS SYNGO ULTRA-SOUND TOYON DATA STREAMING" Keyword="Payload" Name="Payload" +(7FD1,0011) VERS="SSPI" VR="LO" VM="1" Owner="SIEMENS SYNGO ULTRA-SOUND TOYON DATA STREAMING" Keyword="AfterPayload" Name="After Payload" + +(0021,0000) VERS="SSPI" VR="US" VM="1" Owner="SIEMENS Ultrasound S2000" Keyword="NipplePosition" Name="Nipple Position" +(0021,0001) VERS="SSPI" VR="US" VM="1" Owner="SIEMENS Ultrasound S2000" Keyword="ABVSClipDerivedFromVolume" Name="ABVS Clip Derived From Volume" + + diff -Nru dicom3tools-1.00~20131005/libsrc/standard/iodcomp/ct.tpl dicom3tools-1.00~20140105/libsrc/standard/iodcomp/ct.tpl --- dicom3tools-1.00~20131005/libsrc/standard/iodcomp/ct.tpl 2013-09-12 14:53:14.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/iodcomp/ct.tpl 2014-01-05 12:18:30.000000000 +0000 @@ -44,6 +44,51 @@ InformationEntityEnd CompositeIODEnd +CompositeIOD="LegacyConvertedEnhancedCTImage" Condition="LegacyConvertedEnhancedCTImageInstance" + InformationEntity="File" + Module="FileMetaInformation" Usage="C" Condition="NeedModuleFileMetaInformation" + InformationEntityEnd + InformationEntity="Patient" + Module="Patient" Usage="M" + 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="ClinicalTrialSeries" Usage="U" Condition="NeedModuleClinicalTrialSeries" + Module="CTSeries" Usage="M" + InformationEntityEnd + InformationEntity="FrameOfReference" + Module="FrameOfReference" Usage="M" + Module="Synchronization" Usage="U" Condition="NeedToCheckModuleSynchronization" + InformationEntityEnd + InformationEntity="Equipment" + Module="GeneralEquipment" Usage="M" + Module="EnhancedGeneralEquipment" Usage="U" Condition="EnhancedGeneralEquipmentIsPresent" + InformationEntityEnd + InformationEntity="Image" + Module="ImagePixel" Usage="M" + Module="ContrastBolus" Usage="U" Condition="NeedModuleContrastBolus" + Module="EnhancedContrastBolus" Usage="U" Condition="NeedModuleEnhancedContrastBolus" + Module="MultiFrameFunctionalGroupsCommon" Usage="M" + Module="MultiFrameFunctionalGroupsForLegacyConvertedEnhancedCTImage" Usage="M" + Module="MultiFrameDimension" Usage="U" Condition="NeedModuleMultiFrameDimension" + Module="CardiacSynchronization" Usage="U" Condition="NeedModuleCardiacSynchronization" + Module="RespiratorySynchronization" Usage="U" Condition="NeedModuleRespiratorySynchronization" + Module="AcquisitionContext" Usage="M" + Module="Device" Usage="U" Condition="NeedModuleDevice" + Module="Specimen" Usage="U" Condition="NeedModuleSpecimen" + Module="EnhancedCTImage" Usage="M" + Module="SOPCommon" Usage="M" + Module="CommonInstanceReference" Usage="U" Condition="NeedModuleCommonInstanceReference" + Module="FrameExtraction" Usage="C" Condition="NeedModuleFrameExtraction" + InformationEntityEnd +CompositeIODEnd + CompositeIOD="PrivatePixelMedLegacyConvertedEnhancedCTImage" Condition="PrivatePixelMedLegacyConvertedEnhancedCTImageInstance" InformationEntity="File" Module="FileMetaInformation" Usage="C" Condition="NeedModuleFileMetaInformation" diff -Nru dicom3tools-1.00~20131005/libsrc/standard/iodcomp/mr.tpl dicom3tools-1.00~20140105/libsrc/standard/iodcomp/mr.tpl --- dicom3tools-1.00~20131005/libsrc/standard/iodcomp/mr.tpl 2013-09-12 14:54:52.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/iodcomp/mr.tpl 2014-01-05 12:17:53.000000000 +0000 @@ -170,6 +170,51 @@ InformationEntityEnd CompositeIODEnd +CompositeIOD="LegacyConvertedEnhancedMRImage" Condition="LegacyConvertedEnhancedMRImageInstance" + InformationEntity="File" + Module="FileMetaInformation" Usage="C" Condition="NeedModuleFileMetaInformation" + InformationEntityEnd + InformationEntity="Patient" + Module="Patient" Usage="M" + 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="ClinicalTrialSeries" Usage="U" Condition="NeedModuleClinicalTrialSeries" + Module="MRSeries" Usage="M" + InformationEntityEnd + InformationEntity="FrameOfReference" + Module="FrameOfReference" Usage="M" + Module="Synchronization" Usage="U" Condition="NeedToCheckModuleSynchronization" + InformationEntityEnd + InformationEntity="Equipment" + Module="GeneralEquipment" Usage="M" + Module="EnhancedGeneralEquipment" Usage="U" Condition="EnhancedGeneralEquipmentIsPresent" + InformationEntityEnd + InformationEntity="Image" + Module="ImagePixel" Usage="M" + Module="ContrastBolus" Usage="U" Condition="NeedModuleContrastBolus" + Module="EnhancedContrastBolus" Usage="U" Condition="NeedModuleEnhancedContrastBolus" + Module="MultiFrameFunctionalGroupsCommon" Usage="M" + Module="MultiFrameFunctionalGroupsForLegacyConvertedEnhancedMRImage" Usage="M" + Module="MultiFrameDimension" Usage="U" Condition="NeedModuleMultiFrameDimension" + Module="CardiacSynchronization" Usage="U" Condition="NeedModuleCardiacSynchronization" + Module="RespiratorySynchronization" Usage="U" Condition="NeedModuleRespiratorySynchronization" + Module="BulkMotionSynchronization" Usage="U" Condition="NeedModuleBulkMotion" + Module="AcquisitionContext" Usage="M" + Module="Device" Usage="U" Condition="NeedModuleDevice" + Module="Specimen" Usage="U" Condition="NeedModuleSpecimen" + Module="EnhancedMRImage" Usage="M" + Module="SOPCommon" Usage="M" + Module="CommonInstanceReference" Usage="U" Condition="NeedModuleCommonInstanceReference" + Module="FrameExtraction" Usage="C" Condition="NeedModuleFrameExtraction" + InformationEntityEnd +CompositeIODEnd CompositeIOD="PrivatePixelMedLegacyConvertedEnhancedMRImage" Condition="PrivatePixelMedLegacyConvertedEnhancedMRImageInstance" InformationEntity="File" @@ -211,7 +256,7 @@ Module="Specimen" Usage="U" Condition="NeedModuleSpecimen" Module="EnhancedMRImage" Usage="M" Module="SOPCommon" Usage="M" - Module="CommonInstanceReference" Usage="U" Condition="NeedModuleCommonInstanceReference" + Module="CommonInstanceReference" Usage="U" Condition="NeedModuleCommonInstanceReference" Module="FrameExtraction" Usage="C" Condition="NeedModuleFrameExtraction" InformationEntityEnd CompositeIODEnd diff -Nru dicom3tools-1.00~20131005/libsrc/standard/module/base.tpl dicom3tools-1.00~20140105/libsrc/standard/module/base.tpl --- dicom3tools-1.00~20131005/libsrc/standard/module/base.tpl 2013-09-24 13:34:59.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/module/base.tpl 2014-01-05 11:23:51.000000000 +0000 @@ -843,17 +843,17 @@ DefineMacro="PixelMeasuresMacro" InformationEntity="FunctionalGroup" Sequence="PixelMeasuresSequence" Type="1" VM="1" - Name="PixelSpacing" Type="1C" NotZeroError="" NoCondition="" mbpo="true" # VolumetricPropertiesIsOtherThanDistoredOrSampled ... - Name="SliceThickness" Type="1C" NotZeroError="" NoCondition="" mbpo="true" # ../../EnhancedMRImageModule[MRImageDescriptionMacro]/VolumetricPropertiesIsVolumeOrSampled ... + Name="PixelSpacing" Type="1C" NotZeroError="" Condition="PixelSpacingNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndVolumetricPropertiesIsNotDistortedSampled" mbpo="true" + Name="SliceThickness" Type="1C" NotZeroError="" Condition="SliceThicknessNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndVolumetricPropertiesIsVolumeOrSampled" mbpo="true" SequenceEnd MacroEnd DefineMacro="FrameContentMacro" InformationEntity="FunctionalGroup" Sequence="FrameContentSequence" Type="1" Name="FrameAcquisitionNumber" Type="3" - Name="FrameReferenceDateTime" Type="1C" NoCondition="" mbpo="true" # ../../[SharedFunctionalGroupsSequence|PerFrameFunctionalGroupsSequence]MRImageFrameTypeMacro/FrameType is ORIGINAL - Name="FrameAcquisitionDateTime" Type="1C" NoCondition="" mbpo="true" - Name="FrameAcquisitionDuration" Type="1C" NoCondition="" mbpo="true" + Name="FrameReferenceDateTime" Type="1C" NoCondition="" mbpo="true" # (../../[SharedFunctionalGroupsSequence or PerFrameFunctionalGroupsSequence item for this frame]MRImageFrameTypeMacro/FrameType is ORIGINAL) and not legacy CT, MR or PET ... too hard :( + Name="FrameAcquisitionDateTime" Type="1C" NoCondition="" mbpo="true" # (../../[SharedFunctionalGroupsSequence or PerFrameFunctionalGroupsSequence item for this frame]MRImageFrameTypeMacro/FrameType is ORIGINAL) and not legacy CT, MR or PET ... too hard :( + Name="FrameAcquisitionDuration" Type="1C" NoCondition="" mbpo="true" # (../../[SharedFunctionalGroupsSequence or PerFrameFunctionalGroupsSequence item for this frame]MRImageFrameTypeMacro/FrameType is ORIGINAL) and not legacy CT, MR or PET ... too hard :( Name="CardiacCyclePosition" Type="3" StringDefinedTerms="CardiacCyclePosition" Name="RespiratoryCyclePosition" Type="3" StringDefinedTerms="RespiratoryCyclePosition" Name="DimensionIndexValues" Type="1C" Condition="DimensionIndexSequencePresent" @@ -1681,7 +1681,7 @@ ModuleEnd Module="MultiFrameFunctionalGroupsForMFSC" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequenceAndPlanePositionSequenceOrPlaneOrientationSequencePresent" InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequenceAndPixelMeasuresSequenceOrPlaneOrientationSequencePresent" InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequenceAndPixelMeasuresSequenceOrPlanePositionSequencePresent" @@ -2060,7 +2060,7 @@ ModuleEnd DefineMacro="SegmentDescriptionMacro" InformationEntity="Instance" - Name="SegmentNumber" Type="1" + Name="SegmentNumber" Type="1" NotZeroError="" Name="SegmentLabel" Type="1" Name="SegmentDescription" Type="3" Name="SegmentAlgorithmType" Type="1" StringEnumValues="SegmentAlgorithmType" @@ -2169,7 +2169,7 @@ ModuleEnd Module="MultiFrameFunctionalGroupsForSegmentation" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequenceAndDerivationImageMacroNotPresentInEitherMBPO" InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequenceAndDerivationImageMacroNotPresentInEitherMBPO" InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequenceAndDerivationImageMacroNotPresentInEitherMBPO" @@ -2213,6 +2213,10 @@ InvokeMacro="SOPInstanceReferenceMacro" Name="FiducialUID" Type="1" SequenceEnd + Sequence="UsedSegmentsSequence" Type="3" VM="1-n" + InvokeMacro="SOPInstanceReferenceMacro" + Name="ReferencedSegmentNumber" Type="1" + SequenceEnd SequenceEnd ModuleEnd @@ -2459,7 +2463,7 @@ MacroEnd Module="MultiFrameFunctionalGroupsForIVOCTImageForPresentation" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="DerivationImageMacro" Condition="DerivationImageMacroOKInSharedFunctionalGroupSequence" InvokeMacro="CardiacSynchronizationMacro" Condition="NeedCardiacSynchronizationMacroInSharedFunctionalGroupSequence" @@ -2483,7 +2487,7 @@ ModuleEnd Module="MultiFrameFunctionalGroupsForIVOCTImageForProcessing" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="DerivationImageMacro" Condition="DerivationImageMacroOKInSharedFunctionalGroupSequence" InvokeMacro="CardiacSynchronizationMacro" Condition="NeedCardiacSynchronizationMacroInSharedFunctionalGroupSequence" InvokeMacro="FrameAnatomyMacro" Condition="FrameAnatomySequenceNotInPerFrameFunctionalGroupSequence" diff -Nru dicom3tools-1.00~20131005/libsrc/standard/module/ct.tpl dicom3tools-1.00~20140105/libsrc/standard/module/ct.tpl --- dicom3tools-1.00~20131005/libsrc/standard/module/ct.tpl 2013-09-24 13:34:48.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/module/ct.tpl 2014-01-05 12:21:45.000000000 +0000 @@ -23,8 +23,8 @@ Verify="ImageType" ValueSelector="3" StringDefinedTerms="EnhancedCTImageType4" InvokeMacro="CommonCTMRImageDescriptionImageLevelMacro" Name="AcquisitionNumber" Type="3" - Name="AcquisitionDateTime" Type="1C" Condition="ImageTypeValue1OriginalOrMixed" - Name="AcquisitionDuration" Type="2C" Condition="ImageTypeValue1OriginalOrMixed" + Name="AcquisitionDateTime" Type="1C" Condition="ImageTypeValue1OriginalOrMixedAndNotLegacyConvertedCT" + Name="AcquisitionDuration" Type="2C" Condition="ImageTypeValue1OriginalOrMixedAndNotLegacyConvertedCT" Sequence="ReferencedRawDataSequence" Type="3" VM="1-n" InvokeMacro="HierarchicalSOPInstanceReferenceMacro" SequenceEnd @@ -45,11 +45,11 @@ Name="BitsAllocated" Type="1" BinaryEnumValues="BitsAre16" Name="BitsStored" Type="1" BinaryEnumValues="BitsAre12Or16" Name="HighBit" Type="1" BinaryEnumValues="BitsAre11Or15" - Name="ContentQualification" Type="1" StringEnumValues="ContentQualification" + Name="ContentQualification" Type="1C" StringEnumValues="ContentQualification" Condition="NotLegacyConvertedCT" mbpo="true" Name="ImageComments" Type="3" - Name="BurnedInAnnotation" Type="1" StringEnumValues="NoFull" + Name="BurnedInAnnotation" Type="1C" StringEnumValues="NoFull" Condition="NotLegacyConvertedCT" mbpo="true" Name="RecognizableVisualFeatures" Type="3" StringEnumValues="YesNoFull" - Name="LossyImageCompression" Type="1" StringEnumValues="LossyImageCompression" + Name="LossyImageCompression" Type="1C" StringEnumValues="LossyImageCompression" Condition="NotLegacyConvertedCT" mbpo="true" Name="LossyImageCompressionRatio" Type="1C" Condition="LossyImageCompressionIs01" Name="LossyImageCompressionMethod" Type="1C" StringDefinedTerms="LossyImageCompressionMethod" Condition="LossyImageCompressionIs01" Verify="LossyImageCompressionMethod" Condition="LossyImageCompressionMethodInconsistentWithTransferSyntax" ThenWarningMessage="method inconsistent with transfer syntax" ShowValueWithMessage="true" @@ -192,7 +192,7 @@ MacroEnd Module="MultiFrameFunctionalGroupsForEnhancedCTImage" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence" @@ -246,9 +246,47 @@ SequenceEnd ModuleEnd +Module="MultiFrameFunctionalGroupsForLegacyConvertedEnhancedCTImage" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" + InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" + InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence" + InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence" + InvokeMacro="ReferencedImageMacro" Condition="ReferencedImageMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="DerivationImageMacro" Condition="DerivationImageMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="CardiacSynchronizationMacro" Condition="CardiacSynchronizationMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="FrameAnatomyMacro" Condition="FrameAnatomyMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="FrameVOILUTMacro" Condition="FrameVOILUTMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="ContrastBolusUsageMacro" Condition="NeedContrastBolusUsageMacroInSharedFunctionalGroupSequence" + InvokeMacro="RespiratorySynchronizationMacro" Condition="RespiratorySynchronizationMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="IrradiationEventIdentificationMacro" Condition="IrradiationEventIdentificationMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="CTImageFrameTypeMacro" Condition="CTImageFrameTypeSequenceNotInPerFrameFunctionalGroupSequence" + InvokeMacro="CTPixelValueTransformationMacro" Condition="PixelValueTransformationSequenceOKInSharedFunctionalGroupSequence" + InvokeMacro="UnassignedSharedConvertedAttributesMacro" + SequenceEnd + + Sequence="PerFrameFunctionalGroupsSequence" Type="1" VM="1-n" + InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInSharedFunctionalGroupSequence" + InvokeMacro="FrameContentMacro" + InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInSharedFunctionalGroupSequence" + InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInSharedFunctionalGroupSequence" + InvokeMacro="ReferencedImageMacro" Condition="ReferencedImageMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="DerivationImageMacro" Condition="DerivationImageMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="CardiacSynchronizationMacro" Condition="CardiacSynchronizationMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="FrameAnatomyMacro" Condition="FrameAnatomyMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="FrameVOILUTMacro" Condition="FrameVOILUTMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="ContrastBolusUsageMacro" Condition="NeedContrastBolusUsageMacroInPerFrameFunctionalGroupSequence" + InvokeMacro="RespiratorySynchronizationMacro" Condition="RespiratorySynchronizationMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="IrradiationEventIdentificationMacro" Condition="IrradiationEventIdentificationMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="CTImageFrameTypeMacro" Condition="CTImageFrameTypeSequenceNotInSharedFunctionalGroupSequence" + InvokeMacro="CTPixelValueTransformationMacro" Condition="PixelValueTransformationSequenceOKInPerFrameFunctionalGroupSequence" + InvokeMacro="UnassignedPerFrameConvertedAttributesMacro" + InvokeMacro="ImageFrameConversionSourceMacro" + SequenceEnd +ModuleEnd + Module="MultiFrameFunctionalGroupsForPrivatePixelMedLegacyConvertedEnhancedCTImage" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence" diff -Nru dicom3tools-1.00~20131005/libsrc/standard/module/mr.tpl dicom3tools-1.00~20140105/libsrc/standard/module/mr.tpl --- dicom3tools-1.00~20131005/libsrc/standard/module/mr.tpl 2013-09-24 13:32:32.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/module/mr.tpl 2014-01-05 11:38:17.000000000 +0000 @@ -12,13 +12,13 @@ MacroEnd DefineMacro="MRImageDescriptionImageLevelMacro" InformationEntity="Image" - Name="ComplexImageComponent" Type="1" StringEnumValues="EnhancedMRComplexImageComponentImageLevel" - Name="AcquisitionContrast" Type="1" StringEnumValues="EnhancedMRAcquisitionContrastImageLevel" + Name="ComplexImageComponent" Type="1C" StringEnumValues="EnhancedMRComplexImageComponentImageLevel" Condition="NotLegacyConvertedMR" mbpo="true" + Name="AcquisitionContrast" Type="1C" StringEnumValues="EnhancedMRAcquisitionContrastImageLevel" Condition="NotLegacyConvertedMR" mbpo="true" MacroEnd DefineMacro="MRImageDescriptionFrameLevelMacro" InformationEntity="Image" - Name="ComplexImageComponent" Type="1" StringEnumValues="EnhancedMRComplexImageComponentFrameLevel" - Name="AcquisitionContrast" Type="1" StringEnumValues="EnhancedMRAcquisitionContrastFrameLevel" + Name="ComplexImageComponent" Type="1C" StringEnumValues="EnhancedMRComplexImageComponentFrameLevel" Condition="NotLegacyConvertedMR" mbpo="true" + Name="AcquisitionContrast" Type="1C" StringEnumValues="EnhancedMRAcquisitionContrastFrameLevel" Condition="NotLegacyConvertedMR" mbpo="true" MacroEnd DefineMacro="MRSpectroscopyDescriptionImageLevelMacro" InformationEntity="Image" @@ -221,8 +221,8 @@ DefineMacro="MRImageAndSpectroscopyInstanceMacro" InformationEntity="Image" Name="AcquisitionNumber" Type="3" - Name="AcquisitionDateTime" Type="1C" Condition="ImageTypeValue1OriginalOrMixed" - Name="AcquisitionDuration" Type="1C" Condition="ImageTypeValue1OriginalOrMixed" + Name="AcquisitionDateTime" Type="1C" Condition="ImageTypeValue1OriginalOrMixedAndNotLegacyConvertedMR" mbpo="true" + Name="AcquisitionDuration" Type="1C" Condition="ImageTypeValue1OriginalOrMixedAndNotLegacyConvertedMR" mbpo="true" Sequence="ReferencedRawDataSequence" Type="3" VM="1-n" InvokeMacro="HierarchicalSOPInstanceReferenceMacro" SequenceEnd @@ -238,17 +238,17 @@ Sequence="ReferencedPresentationStateSequence" Type="1C" VM="1-n" NoCondition="" # real world InvokeMacro="HierarchicalSOPInstanceReferenceMacro" SequenceEnd - Name="ContentQualification" Type="1" StringEnumValues="ContentQualification" - Name="ResonantNucleus" Type="1C" StringDefinedTerms="ResonantNucleus" Condition="ImageTypeValue1OriginalOrMixed" - Name="KSpaceFiltering" Type="1C" StringDefinedTerms="KSpaceFiltering" Condition="ImageTypeValue1OriginalOrMixed" - Name="MagneticFieldStrength" Type="1C" NotZeroWarning="" Condition="ImageTypeValue1OriginalOrMixed" - Name="ApplicableSafetyStandardAgency" Type="1" StringDefinedTerms="ApplicableSafetyStandardAgency" + Name="ContentQualification" Type="1C" StringEnumValues="ContentQualification" Condition="NotLegacyConvertedMR" mbpo="true" + Name="ResonantNucleus" Type="1C" StringDefinedTerms="ResonantNucleus" Condition="ImageTypeValue1OriginalOrMixedAndNotLegacyConvertedMR" mbpo="true" + Name="KSpaceFiltering" Type="1C" StringDefinedTerms="KSpaceFiltering" Condition="ImageTypeValue1OriginalOrMixedAndNotLegacyConvertedMR" mbpo="true" + Name="MagneticFieldStrength" Type="1C" NotZeroWarning="" Condition="ImageTypeValue1OriginalOrMixedAndNotLegacyConvertedMR" mbpo="true" + Name="ApplicableSafetyStandardAgency" Type="1C" StringDefinedTerms="ApplicableSafetyStandardAgency" Condition="NotLegacyConvertedMR" mbpo="true" Name="ApplicableSafetyStandardDescription" Type="3" Name="ImageComments" Type="3" MacroEnd Module="MultiFrameFunctionalGroupsForEnhancedMRImage" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence" @@ -330,7 +330,7 @@ MacroEnd Module="MultiFrameFunctionalGroupsForMRSpectroscopy" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence" @@ -414,9 +414,9 @@ Name="PlanarConfiguration" Type="1C" Condition="SamplesPerPixelGreaterThanOne" BinaryEnumValues="PlanarConfigurationIsColorByPixel" Name="SpacingBetweenSlices" Type="3" - Name="BurnedInAnnotation" Type="1" StringEnumValues="NoFull" + Name="BurnedInAnnotation" Type="1C" Condition="NotLegacyConvertedMR" StringEnumValues="NoFull" mbpo="true" Name="RecognizableVisualFeatures" Type="3" StringEnumValues="YesNoFull" - Name="LossyImageCompression" Type="1" StringEnumValues="LossyImageCompression" + Name="LossyImageCompression" Type="1C" Condition="NotLegacyConvertedMR" StringEnumValues="LossyImageCompression" mbpo="true" Name="LossyImageCompressionRatio" Type="1C" Condition="LossyImageCompressionIs01" Name="LossyImageCompressionMethod" Type="1C" StringDefinedTerms="LossyImageCompressionMethod" Condition="LossyImageCompressionIs01" Verify="LossyImageCompressionMethod" Condition="LossyImageCompressionMethodInconsistentWithTransferSyntax" ThenWarningMessage="method inconsistent with transfer syntax" ShowValueWithMessage="true" @@ -531,8 +531,47 @@ ModuleEnd +Module="MultiFrameFunctionalGroupsForLegacyConvertedEnhancedMRImage" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" + InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" + InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence" + InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence" + InvokeMacro="ReferencedImageMacro" Condition="ReferencedImageMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="DerivationImageMacro" Condition="DerivationImageMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="CardiacSynchronizationMacro" Condition="CardiacSynchronizationMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="FrameAnatomyMacro" Condition="FrameAnatomyMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="PixelValueTransformationMacro" Condition="PixelValueTransformationSequenceOKInSharedFunctionalGroupSequence" + InvokeMacro="FrameVOILUTMacro" Condition="FrameVOILUTMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="RealWorldValueMappingMacro" Condition="FrameVOILUTMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="ContrastBolusUsageMacro" Condition="NeedContrastBolusUsageMacroInSharedFunctionalGroupSequence" + InvokeMacro="RespiratorySynchronizationMacro" Condition="RespiratorySynchronizationMacroOKInSharedFunctionalGroupSequence" + InvokeMacro="MRImageFrameTypeMacro" Condition="MRImageFrameTypeSequenceNotInPerFrameFunctionalGroupSequence" + InvokeMacro="UnassignedSharedConvertedAttributesMacro" + SequenceEnd + + Sequence="PerFrameFunctionalGroupsSequence" Type="1" VM="1-n" + InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInSharedFunctionalGroupSequence" + InvokeMacro="FrameContentMacro" + InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInSharedFunctionalGroupSequence" + InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInSharedFunctionalGroupSequence" + InvokeMacro="ReferencedImageMacro" Condition="ReferencedImageMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="DerivationImageMacro" Condition="DerivationImageMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="CardiacSynchronizationMacro" Condition="CardiacSynchronizationMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="FrameAnatomyMacro" Condition="FrameAnatomyMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="PixelValueTransformationMacro" Condition="PixelValueTransformationSequenceOKInPerFrameFunctionalGroupSequence" + InvokeMacro="FrameVOILUTMacro" Condition="FrameVOILUTMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="RealWorldValueMappingMacro" Condition="RealWorldValueMappingMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="ContrastBolusUsageMacro" Condition="NeedContrastBolusUsageMacroInPerFrameFunctionalGroupSequence" + InvokeMacro="RespiratorySynchronizationMacro" Condition="RespiratorySynchronizationMacroOKInPerFrameFunctionalGroupSequence" + InvokeMacro="MRImageFrameTypeMacro" Condition="MRImageFrameTypeSequenceNotInSharedFunctionalGroupSequence" + InvokeMacro="UnassignedPerFrameConvertedAttributesMacro" + InvokeMacro="ImageFrameConversionSourceMacro" + SequenceEnd +ModuleEnd + + Module="MultiFrameFunctionalGroupsForPrivatePixelMedLegacyConvertedEnhancedMRImage" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence" diff -Nru dicom3tools-1.00~20131005/libsrc/standard/module/pet.tpl dicom3tools-1.00~20140105/libsrc/standard/module/pet.tpl --- dicom3tools-1.00~20131005/libsrc/standard/module/pet.tpl 2013-09-09 07:08:10.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/module/pet.tpl 2013-11-20 17:54:37.000000000 +0000 @@ -121,7 +121,7 @@ ModuleEnd Module="MultiFrameFunctionalGroupsForEnhancedPETImage" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence" @@ -170,7 +170,7 @@ Module="MultiFrameFunctionalGroupsForPrivatePixelMedLegacyConvertedEnhancedPETImage" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence" diff -Nru dicom3tools-1.00~20131005/libsrc/standard/module/xaxrf.tpl dicom3tools-1.00~20140105/libsrc/standard/module/xaxrf.tpl --- dicom3tools-1.00~20131005/libsrc/standard/module/xaxrf.tpl 2013-09-14 14:59:44.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/module/xaxrf.tpl 2013-11-20 19:38:11.000000000 +0000 @@ -429,7 +429,7 @@ Module="MultiFrameFunctionalGroupsForEnhancedXAImage" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="ReferencedImageMacro" Condition="ReferencedImageMacroOKInSharedFunctionalGroupSequence" InvokeMacro="DerivationImageMacro" Condition="DerivationImageMacroOKInSharedFunctionalGroupSequence" InvokeMacro="CardiacSynchronizationMacro" Condition="CardiacSynchronizationMacroOKInSharedFunctionalGroupSequence" @@ -489,7 +489,7 @@ ModuleEnd Module="MultiFrameFunctionalGroupsForEnhancedXRFImage" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="ReferencedImageMacro" Condition="ReferencedImageMacroOKInSharedFunctionalGroupSequence" InvokeMacro="DerivationImageMacro" Condition="DerivationImageMacroOKInSharedFunctionalGroupSequence" InvokeMacro="CardiacSynchronizationMacro" Condition="CardiacSynchronizationMacroOKInSharedFunctionalGroupSequence" @@ -545,7 +545,7 @@ ModuleEnd Module="MultiFrameFunctionalGroupsForXRay3DAngiographicImage" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence" @@ -579,7 +579,7 @@ ModuleEnd Module="MultiFrameFunctionalGroupsForXRay3DCraniofacialImage" - Sequence="SharedFunctionalGroupsSequence" Type="2" VM="0-1" + Sequence="SharedFunctionalGroupsSequence" Type="1" VM="1" InvokeMacro="PixelMeasuresMacro" Condition="PixelMeasuresSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlanePositionMacro" Condition="PlanePositionSequenceNotInPerFrameFunctionalGroupSequence" InvokeMacro="PlaneOrientationMacro" Condition="PlaneOrientationSequenceNotInPerFrameFunctionalGroupSequence" @@ -608,13 +608,20 @@ SequenceEnd ModuleEnd +DefineMacro="CommonCTMRImageDescriptionImageLevelMacroForXRay3DImage" InformationEntity="Image" + Name="PixelPresentation" Type="1" StringEnumValues="CommonCTMRPixelPresentationImageLevel" + Verify="PixelPresentation" Condition="EnhancedMRColorImageInstance" StringEnumValues="PixelPresentationTrueColor" + Name="VolumetricProperties" Type="1" StringEnumValues="CommonCTMRVolumetricPropertiesImageLevel" + Name="VolumeBasedCalculationTechnique" Type="1" StringDefinedTerms="XRay3DImageVolumeBasedCalculationTechniqueImageLevel" +MacroEnd + Module="XRay3DImage" Name="ImageType" Type="1" VM="4" Verify="ImageType" ValueSelector="0" StringEnumValues="CommonEnhancedImageType1" Verify="ImageType" ValueSelector="1" StringEnumValues="CommonEnhancedImageAndFrameType2" Verify="ImageType" ValueSelector="2" StringDefinedTerms="CommonEnhancedImageAndFrameType3" Verify="ImageType" ValueSelector="3" StringEnumValues="XRay3DImageAndFrameType4" - InvokeMacro="CommonCTMRImageDescriptionImageLevelMacro" + InvokeMacro="CommonCTMRImageDescriptionImageLevelMacroForXRay3DImage" Name="BitsAllocated" Type="1" BinaryEnumValues="BitsAre8Or16" Name="BitsStored" Type="1" BinaryEnumValues="BitsAre8To16" Name="HighBit" Type="1" BinaryEnumValues="BitsAre7To15" diff -Nru dicom3tools-1.00~20131005/libsrc/standard/sopcl.tpl dicom3tools-1.00~20140105/libsrc/standard/sopcl.tpl --- dicom3tools-1.00~20131005/libsrc/standard/sopcl.tpl 2013-06-26 20:40:04.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/sopcl.tpl 2013-10-16 00:02:49.000000000 +0000 @@ -230,6 +230,7 @@ DirectoryRecord="MEASUREMENT" Name="OphthalmicVisualFieldStaticPerimetryMeasurementsStorage" Desc="Ophthalmic Visual Field Static Perimetry Measurements Storage" Uid="1.2.840.10008.5.1.4.1.1.80.1" DirectoryRecord="IMAGE" Name="OphthalmicThicknessMapStorage" Desc="Ophthalmic Thickness Map Storage" Uid="1.2.840.10008.5.1.4.1.1.81.1" +DirectoryRecord="IMAGE" Name="CornealTopographyMapStorage" Desc="Corneal Topography Map Storage" Uid="1.2.840.10008.5.1.4.1.1.82.1" DirectoryRecord="PALETTE" Name="ColorPaletteStorage" Desc="Color Palette Storage" Uid="1.2.840.10008.5.1.4.39.1" Name="ColorPaletteInformationModelFind" Desc="Color Palette Information Model Find" Uid="1.2.840.10008.5.1.4.39.2" diff -Nru dicom3tools-1.00~20131005/libsrc/standard/strval/xaxrf.tpl dicom3tools-1.00~20140105/libsrc/standard/strval/xaxrf.tpl --- dicom3tools-1.00~20131005/libsrc/standard/strval/xaxrf.tpl 2012-04-15 21:49:08.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/standard/strval/xaxrf.tpl 2013-11-20 19:38:01.000000000 +0000 @@ -256,3 +256,16 @@ STATIC } +StringValues="XRay3DImageVolumeBasedCalculationTechniqueImageLevel" { + MAX_IP, + MIN_IP, + VOLUME_RENDER, + SURFACE_RENDER, + MPR, + CURVED_MPR, + NONE, + MIXED, + TOMOSYNTHESIS +} + + diff -Nru dicom3tools-1.00~20131005/libsrc/support/elmdict.awk dicom3tools-1.00~20140105/libsrc/support/elmdict.awk --- dicom3tools-1.00~20131005/libsrc/support/elmdict.awk 2010-02-02 15:29:49.000000000 +0000 +++ dicom3tools-1.00~20140105/libsrc/support/elmdict.awk 2013-12-11 12:42:32.000000000 +0000 @@ -135,6 +135,15 @@ retired="false" } + renderAsString="false" + if (match($0,"RenderAsString=\"[^\"]*\"")) + renderAsString=substr($0,RSTART+length("RenderAsString=\""), + RLENGTH-length("RenderAsString=\"")-1); + + if (renderAsString == "true" && vr != "OB") { + print "Warning - (0x" group ",0x" element ",\"" owner "\") renderAsString only valid for OB VR not " vr >"/dev/tty" + } + if (role == "constant") { if (owner == "") { print "#define\t" keyword "_GROUP\t0x" group @@ -142,7 +151,7 @@ } } else if (role == "table") { - print "\t0x" group ",0x" element ",0x" privateblock ",\"" vr "\"," vmmin "," vmmax ",\"" owner "\",\"" keyword "\",\"" name "\"," retired "," + print "\t0x" group ",0x" element ",0x" privateblock ",\"" vr "\"," vmmin "," vmmax ",\"" owner "\",\"" keyword "\",\"" name "\"," retired "," renderAsString "," } } @@ -153,7 +162,7 @@ print "#endif /* __Header_" outname "__ */" } if (role == "table") { - print "\t0, 0, 0, 0, 0, 0, 0" + print "\t0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, false, false" print "};" print "" print "#endif /* __Header_" outname "__ */"