Skip to content
Commits on Source (4)
190715: libsrc/module/base.tpl: Add data elements for Second Generation Radiotherapy C-Arm RT Treatment Modalities (Sup 175)
190621: libsrc/standard/module/mr.tpl: Frame of Reference Module should be U not M in Raw data IOD (000530)
190616: libsrc/standard/condn.tpl: Add SRT to deprecated coding schemes (CP 1850)
190611: libsrc/standard/module/base.tpl: Restore VR of Referenced Frame Numbers inadvertently removed in initial CP 1842 application (CP 1842)
190509: libsrc/standard/module/base.tpl: Add length of encapsulated document when not even (CP 1851)
190430: libsrc/standard/elmdict/philips.tpl: Add/correct private data elements for Philips MR (encountered and DCS MR Release 5.6.0 Systems)
190412: libsrc/standard/condn.tpl: Detect valid MBPO OpticalPathIdentificationSequence in SharedFunctionalGroupSequence; since CP 1713 (000528)
190412: libsrc/standard/condn.tpl,module/base.tpl,vl.tpl: Remove Dimension Index Sequence requirement for WSI when Dimensions implicitly defined by TILED_FULL (CP 1822)
190405: libsrc/module/base.tpl: Correct Content Item Value type from defined terms to enumerated values (000527)
190327: libsrc/standard/elmdict/dicom3.tpl: Add data element for length of encapsulated document when not even (CP 1851)
190323: libsrc/standard/condn.tpl,module,strval/base.tpl: Allow compressed RGB for WSI (CP 1841)
190323: libsrc/standard/condn.tpl,elmdict/dicom3.tpl,module/acqctx.tpl: Referenced Frame Numbers used in Acquisition Context is limited by 16 bit VR (CP 1842)
190323: libsrc/standard/condn.tpl,elmdict/dicom3.tpl,module/base.tpl: Extend Original Attributes Sequence (CP 1766); depended on adding Selector Attribute Macro (Sup 74); also added Extended Selector Attribute Macro (Sup 185)
190317: libsrc/standard/elmdict/other.tpl,siemens.tpl: Add more encountered VRs for private data elements for Siemens and Intelerad
190211: ibsrc/standard/condn.tpl,module/base.tpl,rt.tpl,vl.tpl,xaxrf.tpl: Report errors when Pixel Spacing values are zero (000115), (000159), (000524)
190211: libsrc/module/vl.tpl: Make AcquisitionDuration optional for WSI (CP 1821)
190127: libsrc/support/elmietoxml.awk,libsrc/standard/Imakefile: Add utility to make XML of dictionary IEs and switch to using that and elmdict.xml for install.java
190127: libsrc/standard/condn.tpl,module/base.tpl,vl.tpl: Update VL Image Module with Image Laterality et al (CP 652, CP 1736, CP 1744) and General Image Module with Image Laterality and General Anatomy (CP 1744) but coping with Type 2 v. 3 conflict (cp_dac490)
190125: libsrc/standard/elmdict/dicom3.tpl: Add data elements for Reason for Visit (CP 1837)
190124: libsrc/standard/elmdict/dicom3.tpl: Add data elements for Extended Offset Table (CP 1818)
190124: libsrc/standard/elmdict/dicom3.tpl: Add data elements for corneal measurement values sequence (CP 1814)
190123: libsrc/standard/elmdict/dicom3.tpl: Add data elements for Toric Intraocular Lenses (CP 1813)
190123: libsrc/standard/elmdict/dicom3.tpl: Add data elements for calculation comments for intraocular lens calculations (CP 1812)
190121: libsrc/standard/module/base.tpl: Add TypeOfPatientID to top level in Patient Module and BarcodeValue to SOP Common Module (CP 1828)
190118: libsrc/standard/elmdict/dicom3.tpl: Add EXIF mapped data elements (CP 1736)
190105: libsrc/standard/condn.tpl: do not require laterality if measurement laterality is present (CP 1385)
190102: libsrc/standard/elmdict/dicom3.tpl: Update name of Software Versions (0018,1020) (2019a)
181222: libsrc/standard/elmdict/dicom3.tpl: Correct keyword for Manufacturer's Model Version (3010,001A)
181220: libsrc/standard/elmdict/dicom3.tpl: Correct keyword for Effective Dose Calculation Method Description (3010,0005)
181129: libsrc/standard/elmdict/other.tpl: Add private DicomUtils data elements to dictionary
181129: libsrc/standard/elmdict/other.tpl: Add private pyramid data element to dictionary
181122: libsrc/standard/elmdict/dicom3.tpl: Add data elements for sup 147 FT2
181118: libsrc/standard/elmdict/dicom3.tpl: Add data elements for sup 147
181111: libsrc/standard/elmdict/dicom3.tpl,module/base.tpl,rt.tpl,sr.tpl: Add Institutional Department Type Code Sequence (CP 1809)
181111: libsrc/standard/elmdict/dicom3.tpl,module/vl.tpl: Add Source of Data details for Corneal Size measurement values used in Intraocular Lens Calculations IOD (IOL) (CP 1803)
181110: libsrc/standard/elmdict/dicom3.tpl: Add Multi-energy CT data elements to dictionary (Sup 188)
181103: libsrc/standard/condn.tpl: Correct condition on TestPointNormalsDataFlag
181102: libsrc/standard/condn.tpl,module,strval/base.tpl: Add attributes describing safe or unsafe private elements (CP 1411)
181102: libsrc/standard/condn.tpl,iodcomp,module,strval/vl.tpl,module/base.tpl: Add validation of Ophthalmic Visual Field (OPV) Static Perimetry Measurements (Sup 146)
181018: libsrc/standard/module/vl.tpl: Correct name of WholeSlideMicroscopyImageFrameTypeMacro (000523)
180917: libsrc/standard/condn.tpl,module/base.tpl,rt.tpl: Constituent Mapping Macro (CP 1617)
180917: libsrc/standard/elmdict/dicom3.tpl,module/rt.tpl: Add Algorithm Identification Macro to RT Structure Set (CP 1784)
180917: libsrc/standard/elmdict/dicom3.tpl,module,strval/base.tpl: Add flag to segmentation object indicating segments are nonoverlapping (CP 1780)
180807: appsrc/acrnema/andump.cc: Add skipiftoolong flag for ancreate mode, rather than abort, and include value with ellipsis (000521)
180707: libsrc/standard/elmdict/gems.tpl: Correct missing opening parenthesis in GE private data element (3101,0010)
180627: libsrc/src/dctool/attrmxrd.cc: Report pixel data compressed fragment items have odd length during read (000514)
......
1.00.snapshot.20180803063840
1.00.snapshot.20190724083540
......@@ -257,7 +257,7 @@ doFloatValues(DicomInputStream& in,TextOutputStream& log,Uint32 vl,size_t size)
}
static bool
readAll(DicomInputStream& stream,TextOutputStream& log,ElementDictionary& dict,bool showoffset,ios::fmtflags showoffsetbase,bool ancreate,bool extractCSA)
readAll(DicomInputStream& stream,TextOutputStream& log,ElementDictionary& dict,bool showoffset,ios::fmtflags showoffsetbase,bool ancreate,bool extractCSA,bool skipiftoolong)
{
Uint32 n=stream.haveMetaHeader() ? 132 : 0;
Uint32 length=0xffffffff;
......@@ -486,8 +486,13 @@ log << ")"
}
}
else {
Assert(!ancreate);
Assert(!ancreate || skipiftoolong);
if (ancreate) {
log << "\t[...]";
}
else {
log << "\t[]\t# skipping ...";
}
stream.seekg(vl,ios::cur);
if (stream.fail()) {
cerr << EMsgDC(SeekFailed) << endl;
......@@ -516,6 +521,7 @@ main(int argc, char *argv[])
bool showfilename=options.get("filename");
bool ancreate=options.get("ancreate");
bool extractCSA=options.get("extractCSA");
bool skipiftoolong=options.get("skipiftoolong");
bool showoffset=false;
ios::fmtflags showoffsetbase;
if (options["showoffset"]||options["showoffset-hex"])
......@@ -543,6 +549,7 @@ main(int argc, char *argv[])
<< input_options.usage()
<< " [-ancreate]"
<< " [-extractCSA]"
<< " [-skipiftoolong]"
<< " [-showoffset|-showoffset-hex"
<< "|-showoffset-octal|-showoffset-oct"
<< "|-showoffset-decimal|-showoffset-dec]"
......@@ -565,5 +572,5 @@ main(int argc, char *argv[])
ElementDictionary dictionary;
readAll(din,log,dictionary,showoffset,showoffsetbase,ancreate,extractCSA);
readAll(din,log,dictionary,showoffset,showoffsetbase,ancreate,extractCSA,skipiftoolong);
}
dicom3tools (1.00~20190724083540-1) unstable; urgency=medium
* New upstream version 1.00~20190724083540
-- Gert Wollny <gewo@debian.org> Tue, 01 Oct 2019 08:54:35 +0200
dicom3tools (1.00~20180803063840-1) unstable; urgency=medium
[Gert Wollny]
......
......@@ -4,4 +4,4 @@
#include "platform.h"
const char* dicom3tools_platform_string = "Darwin graythin.local 17.5.0 Darwin Kernel Version 17.5.0: Fri Apr 13 19:32:32 PDT 2018; root:xnu-4570.51.2~1/RELEASE_X86_64 x86_64";
const char* dicom3tools_platform_string = "Darwin graythin.local 17.7.0 Darwin Kernel Version 17.7.0: Thu Dec 20 21:47:19 PST 2018; root:xnu-4570.71.22~1/RELEASE_X86_64 x86_64";
......@@ -4,4 +4,4 @@
#include "version.h"
const char* dicom3tools_version_string = "1.00.snapshot.20180803063840";
const char* dicom3tools_version_string = "1.00.snapshot.20190724083540";
......@@ -22,9 +22,9 @@ iodandmodulerelationshipsbytag_simple.dat: iodandmodulerelationshipsbytag.dat
head -1 <iodandmodulerelationshipsbytag.dat | awk -F, '{print $$1 "," $$2 "," $$3 "," $$4}' >iodandmodulerelationshipsbytag_simple.dat
sed -e '1d' <iodandmodulerelationshipsbytag.dat | awk -F, '{print $$1 "," $$2 "," $$3 "," $$4 "," $$5}' | sort -u -t , +2 >>iodandmodulerelationshipsbytag_simple.dat
install.java: TagFromName.java DicomDictionary.java
$(CP) TagFromName.java $(PIXELMEDTARGETDIR)
$(CP) DicomDictionary.java $(PIXELMEDTARGETDIR)
install.java: elmdict.xml elmdictie.xml
$(CP) elmdict.xml $(PIXELMEDTARGETDIR)
$(CP) elmdictie.xml $(PIXELMEDTARGETDIR)
TagFromName.java: $(PROJECTLIBSUPPORTDIR)/elmtojava_TagFromName.awk \
elmdict/dicom3.tpl \
......@@ -86,6 +86,12 @@ InformationEntity.csv: \
| sort \
>>InformationEntity.csv
elmdictie.xml: \
$(PROJECTLIBSUPPORTDIR)/elmietoxml.awk \
iodcomp.tpl module.tpl Imakefile
cat iodcomp.tpl module.tpl \
| $(AWK) -f $(PROJECTLIBSUPPORTDIR)/elmietoxml.awk >elmdictie.xml
elmdict.xml: \
elmdict/dicom3.tpl \
elmdict/dicos.tpl \
......
......@@ -484,6 +484,10 @@ Condition="IntraocularLensCalculationsInstance"
Element="SOPClassUID" StringConstantFromRootAttribute="IntraocularLensCalculationsStorageSOPClassUID"
ConditionEnd
Condition="OphthalmicVisualFieldStaticPerimetryMeasurementsInstance"
Element="SOPClassUID" StringConstantFromRootAttribute="OphthalmicVisualFieldStaticPerimetryMeasurementsStorageSOPClassUID"
ConditionEnd
Condition="BreastProjectionXRayImageInstance"
Element="SOPClassUID" StringConstantFromRootAttribute="BreastProjectionXRayImageStorageForPresentationSOPClassUID"
Element="SOPClassUID" Operator="Or" StringConstantFromRootAttribute="BreastProjectionXRayImageStorageForProcessingSOPClassUID"
......@@ -3788,6 +3792,26 @@ Condition="JPEGLossyTransferSyntaxAndThreeSamples"
) Operator="And"
ConditionEnd
Condition="JPEGLossyTransferSyntaxAndThreeSamplesOtherThanWSI"
Element="SamplesPerPixel" BinaryValue="== 3"
(
Element="TransferSyntaxUID" StringValue="1.2.840.10008.1.2.4.50"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.51"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.52"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.53"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.54"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.55"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.56"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.59"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.60"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.61"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.62"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.63"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.64"
) Operator="And"
Element="SOPClassUID" Operator="And" Modifier="Not" "StringConstantFromRootAttribute="VLWholeSlideMicroscopyImageStorageSOPClassUID"
ConditionEnd
Condition="JPEGLosslessTransferSyntaxAndThreeSamples"
Element="SamplesPerPixel" BinaryValue="== 3"
(
......@@ -3804,6 +3828,13 @@ Condition="JPEG2000LosslessTransferSyntaxAndThreeSamples"
Element="SamplesPerPixel" Operator="And" BinaryValue="== 3"
ConditionEnd
Condition="JPEG2000LosslessTransferSyntaxAndThreeSamplesOtherThanWSI"
Element="TransferSyntaxUID" StringValue="1.2.840.10008.1.2.4.90"
Element="SamplesPerPixel" Operator="And" BinaryValue="== 3"
Element="SOPClassUID" Operator="And" Modifier="Not" "StringConstantFromRootAttribute="VLWholeSlideMicroscopyImageStorageSOPClassUID"
ConditionEnd
Condition="JPEG2000TransferSyntaxAndThreeSamples"
Element="SamplesPerPixel" BinaryValue="== 3"
(
......@@ -3812,6 +3843,15 @@ Condition="JPEG2000TransferSyntaxAndThreeSamples"
) Operator="And"
ConditionEnd
Condition="JPEG2000TransferSyntaxAndThreeSamplesOtherThanWSI"
Element="SamplesPerPixel" BinaryValue="== 3"
(
Element="TransferSyntaxUID" StringValue="1.2.840.10008.1.2.4.90"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.91"
) Operator="And"
Element="SOPClassUID" Operator="And" Modifier="Not" "StringConstantFromRootAttribute="VLWholeSlideMicroscopyImageStorageSOPClassUID"
ConditionEnd
Condition="MPEG2TransferSyntax"
Element="TransferSyntaxUID" StringValue="1.2.840.10008.1.2.4.100"
Element="TransferSyntaxUID" Operator="Or" StringValue="1.2.840.10008.1.2.4.101"
......@@ -5306,6 +5346,7 @@ Condition="CodeValueIllegalOrDeprecated"
ConditionEnd
Condition="CodingSchemeDesignatorDeprecated"
Element="CodingSchemeDesignator" StringValue="SRT"
Element="CodingSchemeDesignator" StringValue="SNM3"
Element="CodingSchemeDesignator" StringValue="99SDM"
ConditionEnd
......@@ -5491,6 +5532,7 @@ ConditionEnd
# and assume cardiac, respiratory and voice (but not all audio) waveforms are not a paired body part (though hemodynamic waveforms might be)
Condition="LateralityRequired"
Element="ImageLaterality" Modifier="Not" ElementPresent=""
Element="MeasurementLaterality" Operator="And" Modifier="Not" ElementPresent=""
Element="FrameAnatomySequence" Operator="And" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
Element="FrameAnatomySequence" Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
Element="SegmentSequence" Operator="And" Modifier="Not" ElementPresent=""
......@@ -6381,12 +6423,18 @@ ConditionEnd
Condition="NeedOpticalPathIdentificationMacroInSharedFunctionalGroupSequenceForWholeSlideMicroscopy"
Element="OpticalPathIdentificationSequence" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
Element="DimensionOrganizationType" Operator="And" Modifier="Not" ValueSelector="0" StringValueFromRootAttribute="TILED_FULL"
(
Element="OpticalPathIdentificationSequence" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
Element="DimensionOrganizationType" Operator="Or" Modifier="Not" ValueSelector="0" StringValueFromRootAttribute="TILED_FULL"
) Operator="And"
ConditionEnd
Condition="NeedOpticalPathIdentificationMacroInPerFrameFunctionalGroupSequenceForWholeSlideMicroscopy"
Element="OpticalPathIdentificationSequence" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
Element="DimensionOrganizationType" Operator="And" Modifier="Not" ValueSelector="0" StringValueFromRootAttribute="TILED_FULL"
(
Element="OpticalPathIdentificationSequence" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
Element="DimensionOrganizationType" Operator="Or" Modifier="Not" ValueSelector="0" StringValueFromRootAttribute="TILED_FULL"
) Operator="And"
ConditionEnd
Condition="ImageTypeValue3LocalizerOrLabel"
......@@ -6422,34 +6470,38 @@ Condition="SpatialTransformOfDoseIsRigidOrNonRigid"
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="PixelSpacingNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndVolumetricPropertiesIsNotDistortedSampledOrSegmentationWithFrameOfReference"
Element="PixelSpacing" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
Element="PixelSpacing" Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
(
Condition="PixelSpacingRequiredInPixelMeasures"
(
Element="VolumetricProperties" Modifier="Not" StringValueFromRootAttribute="DISTORTED"
Element="VolumetricProperties" ElementPresentInRoot=""
Element="VolumetricProperties" Operator="And" Modifier="Not" StringValueFromRootAttribute="DISTORTED"
Element="VolumetricProperties" Operator="And" Modifier="Not" StringValueFromRootAttribute="SAMPLED"
) Operator="Or"
(
Element="SOPClassUID" StringConstantFromRootAttribute="SegmentationStorageSOPClassUID"
Element="FrameOfReferenceUID" Operator="And" ElementPresentInRoot=""
) Operator="Or"
) Operator="And"
(
Element="SOPClassUID" StringConstantFromRootAttribute="OphthalmicTomographyImageStorageSOPClassUID"
Element="OphthalmicVolumetricPropertiesFlag" Operator="And" StringValueFromRootAttribute="YES"
) Operator="Or"
Element="SOPClassUID" Operator="Or" StringConstantFromRootAttribute="OphthalmicOpticalCoherenceTomographyBscanVolumeAnalysisStorageSOPClassUID"
ConditionEnd
# does not check that EVERY PerFrameFunctionalGroupsSequence item has it, if not in Shared, but better than no check at all :(
Condition="SliceThicknessNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndVolumetricPropertiesIsVolumeOrSampledOrSegmentationWithFrameOfReference"
Element="SliceThickness" Modifier="Not" ElementPresentInPathFromRoot="SharedFunctionalGroupsSequence"
Element="SliceThickness" Operator="And" Modifier="Not" ElementPresentInPathFromRootFirstItem="PerFrameFunctionalGroupsSequence"
Condition="SliceThicknessRequiredInPixelMeasures"
(
Element="VolumetricProperties" StringValueFromRootAttribute="VOLUME"
Element="VolumetricProperties" Operator="Or" StringValueFromRootAttribute="SAMPLED"
Element="VolumetricProperties" ElementPresentInRoot=""
Element="VolumetricProperties" Operator="And" Modifier="Not" StringValueFromRootAttribute="DISTORTED"
Element="VolumetricProperties" Operator="And" Modifier="Not" StringValueFromRootAttribute="SAMPLED"
) Operator="Or"
(
Element="SOPClassUID" StringConstantFromRootAttribute="SegmentationStorageSOPClassUID"
Element="FrameOfReferenceUID" Operator="And" ElementPresentInRoot=""
) Operator="Or"
) Operator="And"
(
Element="SOPClassUID" StringConstantFromRootAttribute="OphthalmicTomographyImageStorageSOPClassUID"
Element="OphthalmicVolumetricPropertiesFlag" Operator="And" StringValueFromRootAttribute="YES"
) Operator="Or"
Element="SOPClassUID" Operator="Or" StringConstantFromRootAttribute="OphthalmicOpticalCoherenceTomographyBscanVolumeAnalysisStorageSOPClassUID"
ConditionEnd
#cannot actually check FrameType in corresponding per-frame functional group item, so check ImageType instead :(
......@@ -6870,7 +6922,147 @@ Condition="DimensionOrganizationTypeIsTILED_FULL"
Element="DimensionOrganizationType" ValueSelector="0" StringValueFromRootAttribute="TILED_FULL"
ConditionEnd
Condition="DimensionOrganizationTypeIsNotTILED_FULL"
Element="DimensionOrganizationType" Modifier="Not" ValueSelector="0" StringValueFromRootAttribute="TILED_FULL"
ConditionEnd
Condition="DimensionOrganizationTypeIsTILED_FULLAndTotalPixelMatrixFocalPlanesGreaterThanOne"
Element="DimensionOrganizationType" ValueSelector="0" StringValueFromRootAttribute="TILED_FULL"
Element="TotalPixelMatrixFocalPlanes" Operator="And" BinaryValue="> 1"
ConditionEnd
Condition="ReferencedSOPClassUIDIsSegmentationStorage"
Element="ReferencedSOPClassUID" StringConstant="SegmentationStorageSOPClassUID"
ConditionEnd
Condition="ReferencedSOPClassUIDIsSpatialFiducialsStorage"
Element="ReferencedSOPClassUID" StringConstant="SpatialFiducialsStorageSOPClassUID"
ConditionEnd
Condition="ReferencedSOPClassUIDIsRTStructureSetStorage"
Element="ReferencedSOPClassUID" StringConstant="RTStructureSetStorageSOPClassUID"
ConditionEnd
Condition="ExcessiveFalsePositivesDataFlagIsYes"
Element="ExcessiveFalsePositivesDataFlag" StringValue="YES"
ConditionEnd
Condition="FalsePositivesEstimateFlagIsYes"
Element="FalsePositivesEstimateFlag" StringValue="YES"
ConditionEnd
Condition="ExcessiveFalseNegativesDataFlagIsYes"
Element="ExcessiveFalseNegativesDataFlag" StringValue="YES"
ConditionEnd
Condition="FalseNegativesEstimateFlagIsYes"
Element="FalseNegativesEstimateFlag" StringValue="YES"
ConditionEnd
Condition="CatchTrialsDataFlagIsYes"
Element="CatchTrialsDataFlag" StringValue="YES"
ConditionEnd
Condition="ExcessiveFixationLossesDataFlagIsYes"
Element="ExcessiveFixationLossesDataFlag" StringValue="YES"
ConditionEnd
Condition="IndexNormalsFlagIsYes"
Element="IndexNormalsFlag" StringValue="YES"
ConditionEnd
Condition="TestPointNormalsDataFlagIsYes"
Element="TestPointNormalsDataFlag" StringValueFromRootAttribute="YES"
ConditionEnd
Condition="GeneralizedDefectCorrectedSensitivityDeviationFlagIsYes"
Element="GeneralizedDefectCorrectedSensitivityDeviationFlag" StringValue="YES"
ConditionEnd
Condition="BlindSpotLocalizedIsYes"
Element="BlindSpotLocalized" StringValue="YES"
ConditionEnd
Condition="ScreeningBaselineMeasuredIsYes"
Element="ScreeningBaselineMeasured" StringValue="YES"
ConditionEnd
Condition="FovealPointNormativeDataFlagIsYes"
Element="FovealPointNormativeDataFlag" StringValue="YES"
ConditionEnd
Condition="FovealSensitivityMeasuredIsYes"
Element="FovealSensitivityMeasured" StringValue="YES"
ConditionEnd
Condition="PresentedVisualStimuliDataFlagIsYes"
Element="PresentedVisualStimuliDataFlag" StringValue="YES"
ConditionEnd
Condition="LocalDeviationProbabilityNormalsFlagIsYes"
Element="LocalDeviationProbabilityNormalsFlag" StringValue="YES"
ConditionEnd
Condition="GlobalDeviationProbabilityNormalsFlagIsYes"
Element="GlobalDeviationProbabilityNormalsFlag" StringValue="YES"
ConditionEnd
Condition="VisualFieldTestNormalsFlagIsYes"
Element="VisualFieldTestNormalsFlag" StringValue="YES"
ConditionEnd
Condition="ShortTermFluctuationCalculatedIsYes"
Element="ShortTermFluctuationCalculated" StringValue="YES"
ConditionEnd
Condition="ShortTermFluctuationProbabilityCalculatedIsYes"
Element="ShortTermFluctuationProbabilityCalculated" StringValue="YES"
ConditionEnd
Condition="CorrectedLocalizedDeviationFromNormalCalculatedIsYes"
Element="CorrectedLocalizedDeviationFromNormalCalculated" StringValue="YES"
ConditionEnd
Condition="CorrectedLocalizedDeviationFromNormalProbabilityCalculatedIsYes"
Element="CorrectedLocalizedDeviationFromNormalProbabilityCalculated" StringValue="YES"
ConditionEnd
Condition="MeasurementLateralityLeftOrBoth"
Element="MeasurementLaterality" StringValue="L"
Element="MeasurementLaterality" StringValue="B"
ConditionEnd
Condition="MeasurementLateralityRightOrBoth"
Element="MeasurementLaterality" StringValue="R"
Element="MeasurementLaterality" StringValue="B"
ConditionEnd
Condition="PrivateDataElementValueRepresentationIsSequence"
Element="PrivateDataElementValueRepresentation" StringValue="SQ"
ConditionEnd
Condition="BlockIdentifyingInformationStatusIsMIXED"
Element="BlockIdentifyingInformationStatus" StringValue="MIXED"
ConditionEnd
Condition="NeedAnatomicRegionSequenceInGeneralImageModule"
Element="SOPClassUID" StringConstantFromRootAttribute="DigitalXRayImageStorageForProcessingSOPClassUID"
Element="SOPClassUID" StringConstantFromRootAttribute="DigitalMammographyXRayImageStorageForProcessingSOPClassUID"
Element="SOPClassUID" StringConstantFromRootAttribute="DigitalIntraoralXRayImageStorageForProcessingSOPClassUID"
Element="SOPClassUID" StringConstantFromRootAttribute="DigitalXRayImageStorageForPresentationSOPClassUID"
Element="SOPClassUID" StringConstantFromRootAttribute="DigitalMammographyXRayImageStorageForPresentationSOPClassUID"
Element="SOPClassUID" StringConstantFromRootAttribute="DigitalIntraoralXRayImageStorageForPresentationSOPClassUID"
ConditionEnd
Condition="SelectorSequencePointerIsPresent"
Element="SelectorSequencePointer" ElementPresent=""
ConditionEnd
Condition="ReferencedFrameNumberOrReferencedFrameNumbersPresentButNMImageInstance"
Element="SOPClassUID" StringConstantFromRootAttribute="NuclearMedicineImageStorageSOPClassUID"
(
Element="ReferencedFrameNumber" ElementPresent=""
Element="ReferencedFrameNumbers" Operator="Or" ElementPresent=""
) Operator="And"
ConditionEnd
This diff is collapsed.
......@@ -1097,6 +1097,11 @@
(3F01,0009) VERS="INT" VR="LO" VM="1" Owner="INTELERAD MEDICAL SYSTEMS" Keyword="?" Name="?"
(3F01,000A) VERS="INT" VR="DA" VM="1" Owner="INTELERAD MEDICAL SYSTEMS" Keyword="?" Name="?"
(3F01,000B) VERS="INT" VR="TM" VM="1" Owner="INTELERAD MEDICAL SYSTEMS" Keyword="?" Name="?"
(3F01,0010) VERS="INT" VR="SH" VM="1" Owner="INTELERAD MEDICAL SYSTEMS" Keyword="?" Name="?"
(3F01,0011) VERS="INT" VR="US" VM="1" Owner="INTELERAD MEDICAL SYSTEMS" Keyword="?" Name="?"
(3F01,0012) VERS="INT" VR="UL" VM="1" Owner="INTELERAD MEDICAL SYSTEMS" Keyword="?" Name="?"
(3F01,0013) VERS="INT" VR="LO" VM="1" Owner="INTELERAD MEDICAL SYSTEMS" Keyword="?" Name="?"
(3F01,0014) VERS="INT" VR="LO" VM="1" Owner="INTELERAD MEDICAL SYSTEMS" Keyword="?" Name="?"
(3F03,0001) VERS="INT" VR="SQ" VM="1" Owner="INTELERAD MEDICAL SYSTEMS" Keyword="?" Name="?"
(3F03,0002) VERS="INT" VR="DT" VM="1" Owner="INTELERAD MEDICAL SYSTEMS" Keyword="?" Name="?"
......@@ -1685,6 +1690,8 @@
(0041,0001) VERS="PMP" VR="SQ" VM="1" Owner="PixelMed Publishing" Keyword="QuantityDefinitionCodeSequence" Name="Quantity Definition Code Sequence"
(7FDF,0001) VERS="PMP" VR="SQ" VM="1" Owner="PixelMed Publishing" Keyword="PyramidData" Name="Pyramid Data"
(7FE1,0001) VERS="PMP" VR="OF" VM="1" Owner="PixelMed Publishing" Keyword="FloatPixelData" Name="Float Pixel Data"
(7FE1,0002) VERS="PMP" VR="OD" VM="1" Owner="PixelMed Publishing" Keyword="DoublePixelData" Name="Double Pixel Data"
......@@ -2368,3 +2375,11 @@
(0029,0050) VERS="3DH" VR="UL" VM="1" Owner="3DHISTECH ZOOMLEVEL REGION MAP" Keyword="?" Name="?"
(0029,0061) VERS="3DH" VR="SQ" VM="1" Owner="3DHISTECH ZOOMLEVEL REGION MAP" Keyword="?" Name="?"
(0029,0070) VERS="3DH" VR="OB" VM="1" Owner="3DHISTECH ZOOMLEVEL REGION MAP" Keyword="?" Name="?"
(0009,0001) VERS="DUTL" VR="SQ" VM="1" Owner="DicomUtils 20100512" Keyword="?" Name="?"
(0009,0002) VERS="DUTL" VR="OB" VM="1" Owner="DicomUtils 20100512" Keyword="?" Name="?" RenderAsString="true"
(0009,0003) VERS="DUTL" VR="OB" VM="1" Owner="DicomUtils 20100512" Keyword="?" Name="?" RenderAsString="true"
(0009,0004) VERS="DUTL" VR="UN" VM="1" Owner="DicomUtils 20100512" Keyword="?" Name="?"
This diff is collapsed.
......@@ -844,6 +844,7 @@
(0019,00af) VERS="SSPI" VR="DS" VM="1" Owner="SIEMENS CT VA0 COAD" Keyword="?" Name="?"
(0019,00b0) VERS="SSPI" VR="DS" VM="1" Owner="SIEMENS CT VA0 COAD" Keyword="FeedPerRotation" Name="Feed per Rotation"
(0019,00b0) VERS="SSPI" VR="UL" VM="1" Owner="SIEMENS MR VA0 COAD" Keyword="AdjustmentStatusMask" Name="Adjustment Status Mask"
(0019,00b1) VERS="SSPI" VR="LO" VM="1" Owner="SIEMENS CT VA0 COAD" Keyword="?" Name="?"
(0019,00bd) VERS="SSPI" VR="IS" VM="1" Owner="SIEMENS CT VA0 COAD" Keyword="PulmoTriggerLevel" Name="Pulmo Trigger Level"
(0019,00be) VERS="SSPI" VR="DS" VM="1" Owner="SIEMENS CT VA0 COAD" Keyword="ExpiratoricReserveVolume" Name="Expiratoric Reserve Volume"
(0019,00bf) VERS="SSPI" VR="DS" VM="1" Owner="SIEMENS CT VA0 COAD" Keyword="VitalCapacity" Name="Vital Capacity"
......
This diff is collapsed.
......@@ -156,7 +156,7 @@ CompositeIOD="RawData" Condition="RawDataInstance"
Module="ClinicalTrialSeries" Usage="U" Condition="NeedModuleClinicalTrialSeries"
InformationEntityEnd
InformationEntity="FrameOfReference"
Module="FrameOfReference" Usage="M"
Module="FrameOfReference" Usage="U" Condition="NeedModuleFrameOfReference"
Module="Synchronization" Usage="C" Condition="NeedToCheckModuleSynchronization"
InformationEntityEnd
InformationEntity="Equipment"
......
......@@ -472,19 +472,22 @@ CompositeIOD="VLWholeSlideMicroscopyImage" Condition="VLWholeSlideMicroscopyIma
CompositeIODEnd
CompositeIOD="LensometryMeasurements" Condition="LensometryMeasurementsInstance"
InformationEntity="File"
Module="FileMetaInformation" Usage="C" Condition="NeedModuleFileMetaInformation"
InformationEntityEnd
InformationEntity="Patient"
Module="Patient" Usage="M"
Module="ClinicalTrialSubject" Usage="U"
Module="ClinicalTrialSubject" Usage="U" Condition="NeedModuleClinicalTrialSubject"
InformationEntityEnd
InformationEntity="Study"
Module="GeneralStudy" Usage="M"
Module="PatientStudy" Usage="U"
Module="ClinicalTrialStudy" Usage="U"
Module="PatientStudy" Usage="U" # no condition ... all attributes type 3
Module="ClinicalTrialStudy" Usage="U" Condition="NeedModuleClinicalTrialStudy"
InformationEntityEnd
InformationEntity="Series"
Module="GeneralSeries" Usage="M"
Module="LensometryMeasurementsSeries" Usage="M"
Module="ClinicalTrialSeries" Usage="U"
Module="ClinicalTrialSeries" Usage="U" Condition="NeedModuleClinicalTrialSeries"
InformationEntityEnd
InformationEntity="Equipment"
Module="GeneralEquipment" Usage="M"
......@@ -498,19 +501,22 @@ CompositeIOD="LensometryMeasurements" Condition="LensometryMeasurementsInstance"
CompositeIODEnd
CompositeIOD="AutorefractionMeasurements" Condition="AutorefractionMeasurementsInstance"
InformationEntity="File"
Module="FileMetaInformation" Usage="C" Condition="NeedModuleFileMetaInformation"
InformationEntityEnd
InformationEntity="Patient"
Module="Patient" Usage="M"
Module="ClinicalTrialSubject" Usage="U"
Module="ClinicalTrialSubject" Usage="U" Condition="NeedModuleClinicalTrialSubject"
InformationEntityEnd
InformationEntity="Study"
Module="GeneralStudy" Usage="M"
Module="PatientStudy" Usage="U"
Module="ClinicalTrialStudy" Usage="U"
Module="PatientStudy" Usage="U" # no condition ... all attributes type 3
Module="ClinicalTrialStudy" Usage="U" Condition="NeedModuleClinicalTrialStudy"
InformationEntityEnd
InformationEntity="Series"
Module="GeneralSeries" Usage="M"
Module="AutorefractionMeasurementsSeries" Usage="M"
Module="ClinicalTrialSeries" Usage="U"
Module="ClinicalTrialSeries" Usage="U" Condition="NeedModuleClinicalTrialSeries"
InformationEntityEnd
InformationEntity="Equipment"
Module="GeneralEquipment" Usage="M"
......@@ -524,19 +530,22 @@ CompositeIOD="AutorefractionMeasurements" Condition="AutorefractionMeasurementsI
CompositeIODEnd
CompositeIOD="KeratometryMeasurements" Condition="KeratometryMeasurementsInstance"
InformationEntity="File"
Module="FileMetaInformation" Usage="C" Condition="NeedModuleFileMetaInformation"
InformationEntityEnd
InformationEntity="Patient"
Module="Patient" Usage="M"
Module="ClinicalTrialSubject" Usage="U"
Module="ClinicalTrialSubject" Usage="U" Condition="NeedModuleClinicalTrialSubject"
InformationEntityEnd
InformationEntity="Study"
Module="GeneralStudy" Usage="M"
Module="PatientStudy" Usage="U"
Module="ClinicalTrialStudy" Usage="U"
Module="PatientStudy" Usage="U" # no condition ... all attributes type 3
Module="ClinicalTrialStudy" Usage="U" Condition="NeedModuleClinicalTrialStudy"
InformationEntityEnd
InformationEntity="Series"
Module="GeneralSeries" Usage="M"
Module="KeratometryMeasurementsSeries" Usage="M"
Module="ClinicalTrialSeries" Usage="U"
Module="ClinicalTrialSeries" Usage="U" Condition="NeedModuleClinicalTrialSeries"
InformationEntityEnd
InformationEntity="Equipment"
Module="GeneralEquipment" Usage="M"
......@@ -550,19 +559,22 @@ CompositeIOD="KeratometryMeasurements" Condition="KeratometryMeasurementsInstanc
CompositeIODEnd
CompositeIOD="SubjectiveRefractionMeasurements" Condition="SubjectiveRefractionMeasurementsInstance"
InformationEntity="File"
Module="FileMetaInformation" Usage="C" Condition="NeedModuleFileMetaInformation"
InformationEntityEnd
InformationEntity="Patient"
Module="Patient" Usage="M"
Module="ClinicalTrialSubject" Usage="U"
Module="ClinicalTrialSubject" Usage="U" Condition="NeedModuleClinicalTrialSubject"
InformationEntityEnd
InformationEntity="Study"
Module="GeneralStudy" Usage="M"
Module="PatientStudy" Usage="U"
Module="ClinicalTrialStudy" Usage="U"
Module="PatientStudy" Usage="U" # no condition ... all attributes type 3
Module="ClinicalTrialStudy" Usage="U" Condition="NeedModuleClinicalTrialStudy"
InformationEntityEnd
InformationEntity="Series"
Module="GeneralSeries" Usage="M"
Module="SubjectiveRefractionMeasurementsSeries" Usage="M"
Module="ClinicalTrialSeries" Usage="U"
Module="ClinicalTrialSeries" Usage="U" Condition="NeedModuleClinicalTrialSeries"
InformationEntityEnd
InformationEntity="Equipment"
Module="GeneralEquipment" Usage="M"
......@@ -576,19 +588,22 @@ CompositeIOD="SubjectiveRefractionMeasurements" Condition="SubjectiveRefractionM
CompositeIODEnd
CompositeIOD="VisualAcuityMeasurements" Condition="VisualAcuityMeasurementsInstance"
InformationEntity="File"
Module="FileMetaInformation" Usage="C" Condition="NeedModuleFileMetaInformation"
InformationEntityEnd
InformationEntity="Patient"
Module="Patient" Usage="M"
Module="ClinicalTrialSubject" Usage="U"
Module="ClinicalTrialSubject" Usage="U" Condition="NeedModuleClinicalTrialSubject"
InformationEntityEnd
InformationEntity="Study"
Module="GeneralStudy" Usage="M"
Module="PatientStudy" Usage="U"
Module="ClinicalTrialStudy" Usage="U"
Module="PatientStudy" Usage="U" # no condition ... all attributes type 3
Module="ClinicalTrialStudy" Usage="U" Condition="NeedModuleClinicalTrialStudy"
InformationEntityEnd
InformationEntity="Series"
Module="GeneralSeries" Usage="M"
Module="VisualAcuityMeasurementsSeries" Usage="M"
Module="ClinicalTrialSeries" Usage="U"
Module="ClinicalTrialSeries" Usage="U" Condition="NeedModuleClinicalTrialSeries"
InformationEntityEnd
InformationEntity="Equipment"
Module="GeneralEquipment" Usage="M"
......@@ -602,19 +617,22 @@ CompositeIOD="VisualAcuityMeasurements" Condition="VisualAcuityMeasurementsInsta
CompositeIODEnd
CompositeIOD="OphthalmicAxialMeasurements" Condition="OphthalmicAxialMeasurementsInstance"
InformationEntity="File"
Module="FileMetaInformation" Usage="C" Condition="NeedModuleFileMetaInformation"
InformationEntityEnd
InformationEntity="Patient"
Module="Patient" Usage="M"
Module="ClinicalTrialSubject" Usage="U"
Module="ClinicalTrialSubject" Usage="U" Condition="NeedModuleClinicalTrialSubject"
InformationEntityEnd
InformationEntity="Study"
Module="GeneralStudy" Usage="M"
Module="PatientStudy" Usage="U"
Module="ClinicalTrialStudy" Usage="U"
Module="PatientStudy" Usage="U" # no condition ... all attributes type 3
Module="ClinicalTrialStudy" Usage="U" Condition="NeedModuleClinicalTrialStudy"
InformationEntityEnd
InformationEntity="Series"
Module="GeneralSeries" Usage="M"
Module="OphthalmicAxialMeasurementsSeries" Usage="M"
Module="ClinicalTrialSeries" Usage="U"
Module="ClinicalTrialSeries" Usage="U" Condition="NeedModuleClinicalTrialSeries"
InformationEntityEnd
InformationEntity="Equipment"
Module="GeneralEquipment" Usage="M"
......@@ -628,19 +646,22 @@ CompositeIOD="OphthalmicAxialMeasurements" Condition="OphthalmicAxialMeasurement
CompositeIODEnd
CompositeIOD="IntraocularLensCalculations" Condition="IntraocularLensCalculationsInstance"
InformationEntity="File"
Module="FileMetaInformation" Usage="C" Condition="NeedModuleFileMetaInformation"
InformationEntityEnd
InformationEntity="Patient"
Module="Patient" Usage="M"
Module="ClinicalTrialSubject" Usage="U"
Module="ClinicalTrialSubject" Usage="U" Condition="NeedModuleClinicalTrialSubject"
InformationEntityEnd
InformationEntity="Study"
Module="GeneralStudy" Usage="M"
Module="PatientStudy" Usage="U"
Module="ClinicalTrialStudy" Usage="U"
Module="PatientStudy" Usage="U" # no condition ... all attributes type 3
Module="ClinicalTrialStudy" Usage="U" Condition="NeedModuleClinicalTrialStudy"
InformationEntityEnd
InformationEntity="Series"
Module="GeneralSeries" Usage="M"
Module="IntraocularLensCalculationsSeries" Usage="M"
Module="ClinicalTrialSeries" Usage="U"
Module="ClinicalTrialSeries" Usage="U" Condition="NeedModuleClinicalTrialSeries"
InformationEntityEnd
InformationEntity="Equipment"
Module="GeneralEquipment" Usage="M"
......@@ -653,3 +674,35 @@ CompositeIOD="IntraocularLensCalculations" Condition="IntraocularLensCalculation
InformationEntityEnd
CompositeIODEnd
CompositeIOD="OphthalmicVisualFieldStaticPerimetryMeasurements" Condition="OphthalmicVisualFieldStaticPerimetryMeasurementsInstance"
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="VisualFieldStaticPerimetryMeasurementsSeries" Usage="M"
InformationEntityEnd
InformationEntity="Equipment"
Module="GeneralEquipment" Usage="M"
Module="EnhancedGeneralEquipment" Usage="M"
InformationEntityEnd
InformationEntity="Measurements"
Module="VisualFieldStaticPerimetryTestParameters" Usage="M"
Module="VisualFieldStaticPerimetryTestReliability" Usage="M"
Module="VisualFieldStaticPerimetryTestMeasurements" Usage="M"
Module="VisualFieldStaticPerimetryTestResults" Usage="M"
Module="OphthalmicPatientClinicalInformationandTestLensParameters" Usage="U"
Module="SOPCommon" Usage="M"
InformationEntityEnd
CompositeIODEnd
......@@ -5,7 +5,8 @@ Module="AcquisitionContext"
Sequence="ConceptNameCodeSequence" Type="1" VM="1" # should check for 1 and only 1 item present
InvokeMacro="CodeSequenceMacro"
SequenceEnd
Name="ReferencedFrameNumbers" Type="1C" NoCondition="" NotZeroError=""
Name="ReferencedFrameNumber" Type="1C" NoCondition="" NotZeroError=""
Verify="ReferencedFrameNumber" Condition="ReferencedFrameNumberOrReferencedFrameNumbersPresentButNMImageInstance" ThenErrorMessage="May not be present for NM Image"
Name="NumericValue" Type="1C" VM="1-n" Condition="AcquisitionContextItemIsNumeric"
Name="FloatingPointValue" Type="1C" VM="1-n" NoCondition="" # should check that VM is same as NumericValue :(
Verify="FloatingPointValue" Condition="FloatingPointValuePresentButAcquisitionContextItemIsNotNumeric" ThenErrorMessage="May not be present when NumericValue is absent"
......
......@@ -103,10 +103,14 @@ DefineMacro="PersonIdentificationMacro"
Sequence="InstitutionCodeSequence" Type="1C" VM="1" Condition="InstitutionNameNotPresent"
InvokeMacro="CodeSequenceMacro"
SequenceEnd
Name="InstitutionalDepartmentName" Type="3"
Sequence="InstitutionalDepartmentTypeCodeSequence" Type="3" VM="1"
InvokeMacro="CodeSequenceMacro" BaselineContextID="7030"
SequenceEnd
MacroEnd
DefineMacro="ContentItemMacro"
Name="ValueType" Type="1" StringDefinedTerms="ContentItemValueTypes"
Name="ValueType" Type="1" StringEnumValues="ContentItemValueTypes"
Name="ObservationDateTime" Type="3"
Sequence="ConceptNameCodeSequence" Type="1" VM="1"
InvokeMacro="CodeSequenceMacro"
......@@ -324,6 +328,29 @@ DefineMacro="AlgorithmIdentificationMacro"
Name="AlgorithmSource" Type="3"
MacroEnd
DefineMacro="SelectorAttributeMacro"
Name="SelectorAttribute" Type="1C" VM="1" NoCondition=""
Name="SelectorValueNumber" Type="1C" VM="1" NoCondition=""
Name="SelectorSequencePointer" Type="1C" VM="1" NoCondition=""
Name="SelectorSequencePointerPrivateCreator" Type="1C" VM="1" NoCondition=""
Name="SelectorSequencePointerItems" Type="1C" VM="1" Condition="SelectorSequencePointerIsPresent"
Name="SelectorAttributePrivateCreator" Type="1C" VM="1" NoCondition=""
MacroEnd
DefineMacro="ExtendedSelectorAttributeMacro"
Name="SelectorAttributeName" Type="1" VM="1"
Name="SelectorAttributeKeyword" Type="3" VM="1"
Name="SelectorAttributeVR" Type="1" VM="1"
InvokeMacro="SelectorAttributeMacro"
MacroEnd
DefineMacro="DataSetIdentificationMacro"
Name="DataSetName" Type="1"
Name="DataSetVersion" Type="1"
Name="DataSetSource" Type="1"
Name="DataSetDescription" Type="3"
MacroEnd
# no information entity specified for this macro, else screws up attributes that are otherwise at the Series entity level
DefineMacro="GeneralContributingSourcesMacro"
Sequence="ContributingSOPInstancesReferenceSequence" Type="1C" VM="1-n" NoCondition="" # if present and have an equal value in the contributing SOP Instances :(
......@@ -448,6 +475,7 @@ Module="Patient"
Name="PatientName" Type="2"
Name="PatientID" Type="2"
InvokeMacro="IssuerOfPatientIDMacro"
Name="TypeOfPatientID" Type="3" StringDefinedTerms="TypeOfPatientID"
Name="PatientBirthDate" Type="2"
Name="PatientSex" Type="2" StringEnumValues="Sex"
Name="QualityControlSubject" Type="3" StringEnumValues="YesNoFull"
......@@ -670,6 +698,9 @@ Module="GeneralEquipment"
Name="InstitutionAddress" Type="3"
Name="StationName" Type="3"
Name="InstitutionalDepartmentName" Type="3"
Sequence="InstitutionalDepartmentTypeCodeSequence" Type="3" VM="1"
InvokeMacro="CodeSequenceMacro" BaselineContextID="7030"
SequenceEnd
Name="ManufacturerModelName" Type="3"
Name="DeviceSerialNumber" Type="3"
Name="SoftwareVersions" Type="3"
......@@ -756,6 +787,18 @@ Module="GeneralImage"
Sequence="RealWorldValueMappingSequence" Type="3" VM="1-n"
InvokeMacro="RealWorldValueMappingItemMacro"
SequenceEnd
Name="ImageLaterality" Type="3" StringEnumValues="ImageLaterality"
Sequence="AnatomicRegionSequence" Type="2C" VM="0-1" Condition="NeedAnatomicRegionSequenceInGeneralImageModule" mbpo="true"
InvokeMacro="CodeSequenceMacro"
Sequence="AnatomicRegionModifierSequence" Type="3" VM="1-n"
InvokeMacro="CodeSequenceMacro" BaselineContextID="2"
SequenceEnd
SequenceEnd
InvokeMacro="PrimaryAnatomicStructureMacro"
Sequence="AnatomicRegionModifierSequence" Type="1C" VM="1-n" Condition="Never"
SequenceEnd
Sequence="PrimaryAnatomicStructureModifierSequence" Type="1C" VM="1-n" Condition="Never"
SequenceEnd
ModuleEnd
Module="ImagePlane"
......@@ -773,12 +816,12 @@ DefineMacro="ImagePixelMacro" InformationEntity="Instance"
Verify="SamplesPerPixel" Condition="MPEG2TransferSyntaxAndNotThreeSamples" ThenErrorMessage="May only be 3 for MPEG Transfer Syntax"
Name="PhotometricInterpretation" Type="1" StringDefinedTerms="PhotometricInterpretation"
Verify="PhotometricInterpretation" Condition="JPEGLossyTransferSyntaxAndThreeSamples" StringEnumValues="PhotometricInterpretationYBRFull422"
Verify="PhotometricInterpretation" Condition="JPEGLossyTransferSyntaxAndThreeSamplesOtherThanWSI" StringEnumValues="PhotometricInterpretationYBRFull422"
Verify="PhotometricInterpretation" Condition="JPEGLosslessTransferSyntaxAndThreeSamples" StringEnumValues="PhotometricInterpretationYBRFullOrRGBorYBR_RCT"
Verify="PhotometricInterpretation" Condition="JPEG2000LosslessTransferSyntaxAndThreeSamples" StringEnumValues="PhotometricInterpretationYBRRCT"
Verify="PhotometricInterpretation" Condition="JPEG2000TransferSyntaxAndThreeSamples" StringEnumValues="PhotometricInterpretationYBRRCTOrICT"
Verify="PhotometricInterpretation" Condition="JPEG2000LosslessTransferSyntaxAndThreeSamplesOtherThanWSI" StringEnumValues="PhotometricInterpretationYBRRCT"
Verify="PhotometricInterpretation" Condition="JPEG2000TransferSyntaxAndThreeSamplesOtherThanWSI" StringEnumValues="PhotometricInterpretationYBRRCTOrICT"
Verify="PhotometricInterpretation" Condition="MPEG2TransferSyntax" StringEnumValues="PhotometricInterpretationYBRPartial420" # regardless of number of samples (required to be 3 by PS 3.5)
Verify="PhotometricInterpretation" Condition="RLETransferSyntaxAndThreeSamples" StringEnumValues="PhotometricInterpretationYBRFullOrRGBorYBR_RCTorYBR_ICT"
Verify="PhotometricInterpretation" Condition="RLETransferSyntaxAndThreeSamples" StringEnumValues="PhotometricInterpretationYBRFullOrRGB"
Verify="PhotometricInterpretation" Condition="UncompressedTransferSyntaxAndThreeSamples" StringEnumValues="PhotometricInterpretationYBRFullOrRGBorYBR_RCTorYBR_ICT"
Name="Rows" Type="1" NotZeroError=""
......@@ -989,8 +1032,8 @@ ModuleEnd
DefineMacro="PixelMeasuresMacro" InformationEntity="FunctionalGroup"
Sequence="PixelMeasuresSequence" Type="1" VM="1"
Name="PixelSpacing" Type="1C" NotZeroError="" Condition="PixelSpacingNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndVolumetricPropertiesIsNotDistortedSampledOrSegmentationWithFrameOfReference" mbpo="true"
Name="SliceThickness" Type="1C" NotZeroError="" Condition="SliceThicknessNotPresentInEitherSharedOrPerFrameFunctionalGroupsAndVolumetricPropertiesIsVolumeOrSampledOrSegmentationWithFrameOfReference" mbpo="true"
Name="PixelSpacing" Type="1C" NotZeroError="" Condition="PixelSpacingRequiredInPixelMeasures" mbpo="true"
Name="SliceThickness" Type="1C" NotZeroError="" Condition="SliceThicknessRequiredInPixelMeasures" mbpo="true"
Name="SpacingBetweenSlices" Type="1C" NotZeroError="" Condition="DimensionOrganizationTypeIsTILED_FULLAndTotalPixelMatrixFocalPlanesGreaterThanOne" mbpo="true"
SequenceEnd
MacroEnd
......@@ -1191,7 +1234,7 @@ Module="MultiFrameDimension"
Name="DimensionOrganizationUID" Type="1"
SequenceEnd
Name="DimensionOrganizationType" Type="3" StringDefinedTerms="DimensionOrganizationType"
Sequence="DimensionIndexSequence" Type="1" VM="1-n"
Sequence="DimensionIndexSequence" Type="1C" VM="1-n" Condition="DimensionOrganizationTypeIsNotTILED_FULL" mbpo="true"
Name="DimensionIndexPointer" Type="1"
Verify="DimensionIndexPointer" Condition="DimensionIndexPointerIsFrameContentSequence" ThenErrorMessage="May not be FrameContentSequence"
Verify="DimensionIndexPointer" Condition="DimensionIndexPointerIsDimensionIndexValues" ThenErrorMessage="May not be DimensionIndexValues"
......@@ -2084,6 +2127,9 @@ Module="SOPCommon"
Name="InstitutionAddress" Type="3"
Name="StationName" Type="3"
Name="InstitutionalDepartmentName" Type="3"
Sequence="InstitutionalDepartmentTypeCodeSequence" Type="3" VM="1"
InvokeMacro="CodeSequenceMacro" BaselineContextID="7030"
SequenceEnd
Name="OperatorsName" Type="3"
Sequence="OperatorIdentificationSequence" Type="3" VM="1-n"
InvokeMacro="PersonIdentificationMacro"
......@@ -2114,6 +2160,10 @@ Module="SOPCommon"
Name="ReasonForTheAttributeModification" Type="1"
Sequence="ModifiedAttributesSequence" Type="1" VM="1"
SequenceEnd
Sequence="NonconformingModifiedAttributesSequence" Type="3" VM="1"
InvokeMacro="SelectorAttributeMacro"
Name="NonconformingDataElementValue" Type="1"
SequenceEnd
SequenceEnd
Sequence="HL7StructuredDocumentReferenceSequence" Type="1C" VM="1-n" NoCondition=""
Name="ReferencedSOPClassUID" Type="1"
......@@ -2127,7 +2177,29 @@ Module="SOPCommon"
InvokeMacro="ImageSOPInstanceReferenceMacro"
SequenceEnd
Name="ContentQualification" Type="3" StringEnumValues="ContentQualification"
Sequence="PrivateDataElementCharacteristicsSequence" Type="3" VM="1-n"
Name="PrivateGroupReference" Type="1"
Name="PrivateCreatorReference" Type="1"
Sequence="PrivateDataElementDefinitionSequence" Type="3" VM="1-n"
Name="PrivateDataElement" Type="1"
Name="PrivateDataElementValueMultiplicity" Type="1"
Name="PrivateDataElementValueRepresentation" Type="1" StringEnumValues="ValueRepresentations"
Name="PrivateDataElementNumberOfItems" Type="1C" Condition="PrivateDataElementValueRepresentationIsSequence"
Name="PrivateDataElementKeyword" Type="1"
Name="PrivateDataElementName" Type="1"
Name="PrivateDataElementDescription" Type="3"
Name="PrivateDataElementEncoding" Type="3"
Name="RetrieveURI" Type="3"
SequenceEnd
Name="BlockIdentifyingInformationStatus" Type="1" StringEnumValues="BlockIdentifyingInformationStatus"
Name="NonidentifyingPrivateElements" Type="1C" Condition="BlockIdentifyingInformationStatusIsMIXED"
Sequence="DeidentificationActionSequence" Type="3" VM="1-n"
Name="IdentifyingPrivateElements" Type="1"
Name="DeidentificationAction" Type="1" StringEnumValues="DeidentificationAction"
SequenceEnd
SequenceEnd
Name="InstanceOriginStatus" Type="3" StringEnumValues="InstanceOriginStatus"
Name="BarcodeValue" Type="3"
ModuleEnd
Module="FrameExtraction"
......@@ -2239,6 +2311,7 @@ Module="SegmentationImage"
Name="SegmentationFractionalType" Type="1C" Condition="SegmentationTypeIsFractional" StringEnumValues="SegmentationFractionalType"
Name="MaximumFractionalValue" Type="1C" Condition="SegmentationTypeIsFractional"
# should verify than 0 < MaximumFractionalValue < 256 :(
Name="SegmentsOverlap" Type="3" StringEnumValues="YesNoFullUndefined"
Sequence="SegmentSequence" Type="1" VM="1-n"
InvokeMacro="SegmentDescriptionMacro"
Name="SegmentAlgorithmName" Type="1C" Condition="SegmentAlgorithmTypeIsNotManual"
......@@ -2267,6 +2340,10 @@ DefineMacro="SegmentDescriptionMacro" InformationEntity="Instance"
SequenceEnd
Name="TrackingID" Type="1C" Condition="TrackingUIDIsPresent"
Name="TrackingUID" Type="1C" Condition="TrackingIDIsPresent"
Sequence="DefinitionSourceSequence" Type="3" VM="1"
InvokeMacro="SOPInstanceReferenceMacro"
Name="ReferencedROINumber" Type="1C" Condition="ReferencedSOPClassUIDIsRTStructureSetStorage"
SequenceEnd
MacroEnd
DefineMacro="SegmentationMacro" InformationEntity="FunctionalGroup"
......@@ -2487,6 +2564,10 @@ Module="SpatialFiducials"
InvokeMacro="ImageSOPInstanceReferenceMacro"
SequenceEnd
SequenceEnd
Sequence="DefinitionSourceSequence" Type="3" VM="1"
InvokeMacro="SOPInstanceReferenceMacro"
Name="ReferencedROINumber" Type="1C" Condition="ReferencedSOPClassUIDIsRTStructureSetStorage"
SequenceEnd
SequenceEnd
SequenceEnd
ModuleEnd
......@@ -2538,6 +2619,7 @@ Module="EncapsulatedDocument"
Name="ListOfMIMETypes" Type="1C" NoCondition=""
Name="ImageLaterality" Type="3" StringEnumValues="ImageLaterality"
Name="EncapsulatedDocument" Type="1"
Name="EncapsulatedDocumentLength" Type="3"
ModuleEnd
Module="EncapsulatedDocumentPDFPseudo"
......@@ -2651,7 +2733,7 @@ ModuleEnd
Module="IntravascularOCTProcessingParameters"
Name="OCTZOffsetApplied" Type="1" StringEnumValues="YesNoFull"
Name="RefractiveIndexApplied" Type="1" StringEnumValues="YesNoFull"
Name="ALinePixelSpacing" Type="1"
Name="ALinePixelSpacing" Type="1" NotZeroError=""
Name="PixelIntensityRelationship" Type="1" StringEnumValues="IVOCTPixelIntensityRelationship"
Name="FirstALineLocation" Type="1"
ModuleEnd
......
......@@ -53,7 +53,7 @@ Module="RTImage"
Name="RTImagePlane" Type="1" StringEnumValues="RTImagePlane"
Name="XRayImageReceptorAngle" Type="2"
Name="RTImageOrientation" Type="2C" Condition="RTImagePlaneIsNonNormal" mbpo="true"
Name="ImagePlanePixelSpacing" Type="2"
Name="ImagePlanePixelSpacing" Type="2" NotZeroError=""
Name="RTImagePosition" Type="2"
Name="RadiationMachineName" Type="2"
Name="PrimaryDosimeterUnit" Type="2" StringEnumValues="PrimaryDosimeterUnit"
......@@ -240,6 +240,17 @@ Module="StructureSet"
Name="ROIVolume" Type="3"
Name="ROIGenerationAlgorithm" Type="2" StringDefinedTerms="ROIGenerationAlgorithm"
Name="ROIGenerationDescription" Type="3"
Sequence="ROIDerivationAlgorithmIdentificationSequence" Type="3" VM="1"
InvokeMacro="AlgorithmIdentificationMacro"
SequenceEnd
Sequence="DerivationCodeSequence" Type="3" VM="1-n"
InvokeMacro="CodeSequenceMacro"
SequenceEnd
Sequence="DefinitionSourceSequence" Type="3" VM="1"
InvokeMacro="SOPInstanceReferenceMacro"
Name="ReferencedSegmentNumber" Type="1C" Condition="ReferencedSOPClassUIDIsSegmentationStorage"
Name="ReferencedFiducialUID" Type="1C" Condition="ReferencedSOPClassUIDIsSpatialFiducialsStorage"
SequenceEnd
SequenceEnd
Sequence="PredecessorStructureSetSequence" Type="3" VM="1"
InvokeMacro="SOPInstanceReferenceMacro"
......@@ -497,6 +508,9 @@ Module="RTBeams"
Name="InstitutionName" Type="3"
Name="InstitutionAddress" Type="3"
Name="InstitutionalDepartmentName" Type="3"
Sequence="InstitutionalDepartmentTypeCodeSequence" Type="3" VM="1"
InvokeMacro="CodeSequenceMacro" BaselineContextID="7030"
SequenceEnd
Name="ManufacturerModelName" Type="3"
Name="DeviceSerialNumber" Type="3"
Name="PrimaryDosimeterUnit" Type="3" StringEnumValues="PrimaryDosimeterUnit"
......@@ -557,7 +571,7 @@ Module="RTBeams"
Name="CompensatorMountingPosition" Type="3" StringEnumValues="CompensatorMountingPosition"
Name="CompensatorRows" Type="1"
Name="CompensatorColumns" Type="1"
Name="CompensatorPixelSpacing" Type="1"
Name="CompensatorPixelSpacing" Type="1" NotZeroError=""
Name="CompensatorPosition" Type="1"
Name="CompensatorTransmissionData" Type="1"
Name="CompensatorThicknessData" Type="1"
......@@ -658,6 +672,9 @@ Module="RTBrachyApplicationSetups"
Name="InstitutionName" Type="3"
Name="InstitutionAddress" Type="3"
Name="InstitutionalDepartmentName" Type="3"
Sequence="InstitutionalDepartmentTypeCodeSequence" Type="3" VM="1"
InvokeMacro="CodeSequenceMacro" BaselineContextID="7030"
SequenceEnd
Name="ManufacturerModelName" Type="3"
Name="DeviceSerialNumber" Type="3"
SequenceEnd
......@@ -776,6 +793,9 @@ Module="RTTreatmentMachineRecord"
Name="InstitutionName" Type="2"
Name="InstitutionAddress" Type="3"
Name="InstitutionalDepartmentName" Type="3"
Sequence="InstitutionalDepartmentTypeCodeSequence" Type="3" VM="1"
InvokeMacro="CodeSequenceMacro" BaselineContextID="7030"
SequenceEnd
Name="ManufacturerModelName" Type="2"
Name="DeviceSerialNumber" Type="2"
SequenceEnd
......@@ -1130,6 +1150,9 @@ Module="RTIonBeams"
Name="InstitutionName" Type="3"
Name="InstitutionAddress" Type="3"
Name="InstitutionalDepartmentName" Type="3"
Sequence="InstitutionalDepartmentTypeCodeSequence" Type="3" VM="1"
InvokeMacro="CodeSequenceMacro" BaselineContextID="7030"
SequenceEnd
Name="ManufacturerModelName" Type="3"
Name="DeviceSerialNumber" Type="3"
Name="PrimaryDosimeterUnit" Type="3" StringEnumValues="IonPrimaryDosimeterUnit"
......@@ -1176,7 +1199,7 @@ Module="RTIonBeams"
Name="CompensatorMountingPosition" Type="1" StringEnumValues="CompensatorMountingPosition"
Name="CompensatorRows" Type="1"
Name="CompensatorColumns" Type="1"
Name="CompensatorPixelSpacing" Type="1"
Name="CompensatorPixelSpacing" Type="1" NotZeroError=""
Name="CompensatorPosition" Type="1"
Name="CompensatorColumnOffset" Type="1C" NoCondition="" # if compensator pattern is hexagonal
Name="CompensatorThicknessData" Type="1"
......