1 /*
2  *
3  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
4  *  Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany
5  *  All rights reserved.  See COPYRIGHT file for details.
6  *
7  *  Source file for class DRTStructureSetIOD
8  *
9  *  Generated automatically from DICOM PS 3.3-2017e
10  *  File created on 2017-12-05 09:30:54
11  *
12  */
13 
14 
15 #include "dcmtk/config/osconfig.h"      // make sure OS specific configuration is included first
16 
17 #include "dcmtk/dcmrt/drtstrct.h"
18 
19 
DRTStructureSetIOD()20 DRTStructureSetIOD::DRTStructureSetIOD()
21   : PatientName(DCM_PatientName),
22     PatientID(DCM_PatientID),
23     IssuerOfPatientID(DCM_IssuerOfPatientID),
24     IssuerOfPatientIDQualifiersSequence(),
25     PatientBirthDate(DCM_PatientBirthDate),
26     PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
27     PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
28     PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
29     PatientSex(DCM_PatientSex),
30     ReferencedPatientPhotoSequence(),
31     QualityControlSubject(DCM_QualityControlSubject),
32     ReferencedPatientSequence(),
33     PatientBirthTime(DCM_PatientBirthTime),
34     OtherPatientIDsSequence(),
35     OtherPatientNames(DCM_OtherPatientNames),
36     EthnicGroup(DCM_EthnicGroup),
37     PatientComments(DCM_PatientComments),
38     PatientSpeciesDescription(DCM_PatientSpeciesDescription),
39     PatientSpeciesCodeSequence(),
40     PatientBreedDescription(DCM_PatientBreedDescription),
41     PatientBreedCodeSequence(),
42     BreedRegistrationSequence(),
43     StrainDescription(DCM_StrainDescription),
44     StrainNomenclature(DCM_StrainNomenclature),
45     StrainCodeSequence(),
46     StrainAdditionalInformation(DCM_StrainAdditionalInformation),
47     StrainStockSequence(),
48     GeneticModificationsSequence(),
49     ResponsiblePerson(DCM_ResponsiblePerson),
50     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
51     ResponsibleOrganization(DCM_ResponsibleOrganization),
52     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
53     DeidentificationMethod(DCM_DeidentificationMethod),
54     DeidentificationMethodCodeSequence(),
55     SourcePatientGroupIdentificationSequence(),
56     GroupOfPatientsIdentificationSequence(),
57     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
58     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
59     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
60     ClinicalTrialSiteID(DCM_ClinicalTrialSiteID),
61     ClinicalTrialSiteName(DCM_ClinicalTrialSiteName),
62     ClinicalTrialSubjectID(DCM_ClinicalTrialSubjectID),
63     ClinicalTrialSubjectReadingID(DCM_ClinicalTrialSubjectReadingID),
64     ClinicalTrialProtocolEthicsCommitteeName(DCM_ClinicalTrialProtocolEthicsCommitteeName),
65     ClinicalTrialProtocolEthicsCommitteeApprovalNumber(DCM_ClinicalTrialProtocolEthicsCommitteeApprovalNumber),
66     StudyInstanceUID(DCM_StudyInstanceUID),
67     StudyDate(DCM_StudyDate),
68     StudyTime(DCM_StudyTime),
69     ReferringPhysicianName(DCM_ReferringPhysicianName),
70     ReferringPhysicianIdentificationSequence(),
71     ConsultingPhysicianName(DCM_ConsultingPhysicianName),
72     ConsultingPhysicianIdentificationSequence(),
73     StudyID(DCM_StudyID),
74     AccessionNumber(DCM_AccessionNumber),
75     IssuerOfAccessionNumberSequence(),
76     StudyDescription(DCM_StudyDescription),
77     PhysiciansOfRecord(DCM_PhysiciansOfRecord),
78     PhysiciansOfRecordIdentificationSequence(),
79     NameOfPhysiciansReadingStudy(DCM_NameOfPhysiciansReadingStudy),
80     PhysiciansReadingStudyIdentificationSequence(),
81     RequestingServiceCodeSequence(),
82     ReferencedStudySequence(),
83     ProcedureCodeSequence(),
84     ReasonForPerformedProcedureCodeSequence(),
85     AdmittingDiagnosesDescription(DCM_AdmittingDiagnosesDescription),
86     AdmittingDiagnosesCodeSequence(),
87     PatientAge(DCM_PatientAge),
88     PatientSize(DCM_PatientSize),
89     PatientWeight(DCM_PatientWeight),
90     PatientBodyMassIndex(DCM_PatientBodyMassIndex),
91     MeasuredAPDimension(DCM_MeasuredAPDimension),
92     MeasuredLateralDimension(DCM_MeasuredLateralDimension),
93     PatientSizeCodeSequence(),
94     MedicalAlerts(DCM_MedicalAlerts),
95     Allergies(DCM_Allergies),
96     SmokingStatus(DCM_SmokingStatus),
97     PregnancyStatus(DCM_PregnancyStatus),
98     LastMenstrualDate(DCM_LastMenstrualDate),
99     PatientState(DCM_PatientState),
100     Occupation(DCM_Occupation),
101     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
102     AdmissionID(DCM_AdmissionID),
103     IssuerOfAdmissionIDSequence(),
104     ServiceEpisodeID(DCM_ServiceEpisodeID),
105     IssuerOfServiceEpisodeIDSequence(),
106     ServiceEpisodeDescription(DCM_ServiceEpisodeDescription),
107     PatientSexNeutered(DCM_PatientSexNeutered),
108     ClinicalTrialTimePointID(DCM_ClinicalTrialTimePointID),
109     ClinicalTrialTimePointDescription(DCM_ClinicalTrialTimePointDescription),
110     LongitudinalTemporalOffsetFromEvent(DCM_LongitudinalTemporalOffsetFromEvent),
111     LongitudinalTemporalEventType(DCM_LongitudinalTemporalEventType),
112     ConsentForClinicalTrialUseSequence(),
113     Modality(DCM_Modality),
114     SeriesInstanceUID(DCM_SeriesInstanceUID),
115     SeriesNumber(DCM_SeriesNumber),
116     SeriesDate(DCM_SeriesDate),
117     SeriesTime(DCM_SeriesTime),
118     SeriesDescription(DCM_SeriesDescription),
119     SeriesDescriptionCodeSequence(),
120     OperatorsName(DCM_OperatorsName),
121     OperatorIdentificationSequence(),
122     ReferencedPerformedProcedureStepSequence(),
123     RequestAttributesSequence(),
124     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
125     PerformedProcedureStepStartDate(DCM_PerformedProcedureStepStartDate),
126     PerformedProcedureStepStartTime(DCM_PerformedProcedureStepStartTime),
127     PerformedProcedureStepEndDate(DCM_PerformedProcedureStepEndDate),
128     PerformedProcedureStepEndTime(DCM_PerformedProcedureStepEndTime),
129     PerformedProcedureStepDescription(DCM_PerformedProcedureStepDescription),
130     PerformedProtocolCodeSequence(),
131     CommentsOnThePerformedProcedureStep(DCM_CommentsOnThePerformedProcedureStep),
132     ClinicalTrialCoordinatingCenterName(DCM_ClinicalTrialCoordinatingCenterName),
133     ClinicalTrialSeriesID(DCM_ClinicalTrialSeriesID),
134     ClinicalTrialSeriesDescription(DCM_ClinicalTrialSeriesDescription),
135     Manufacturer(DCM_Manufacturer),
136     InstitutionName(DCM_InstitutionName),
137     InstitutionAddress(DCM_InstitutionAddress),
138     StationName(DCM_StationName),
139     InstitutionalDepartmentName(DCM_InstitutionalDepartmentName),
140     ManufacturerModelName(DCM_ManufacturerModelName),
141     DeviceSerialNumber(DCM_DeviceSerialNumber),
142     SoftwareVersions(DCM_SoftwareVersions),
143     GantryID(DCM_GantryID),
144     UDISequence(),
145     SpatialResolution(DCM_SpatialResolution),
146     DateOfLastCalibration(DCM_DateOfLastCalibration),
147     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
148     PixelPaddingValue(DCM_PixelPaddingValue),
149     FrameOfReferenceUID(DCM_FrameOfReferenceUID),
150     PositionReferenceIndicator(DCM_PositionReferenceIndicator),
151     StructureSetLabel(DCM_StructureSetLabel),
152     StructureSetName(DCM_StructureSetName),
153     StructureSetDescription(DCM_StructureSetDescription),
154     InstanceNumber(DCM_InstanceNumber),
155     StructureSetDate(DCM_StructureSetDate),
156     StructureSetTime(DCM_StructureSetTime),
157     ReferencedFrameOfReferenceSequence(),
158     StructureSetROISequence(),
159     PredecessorStructureSetSequence(),
160     ROIContourSequence(),
161     RTROIObservationsSequence(),
162     ApprovalStatus(DCM_ApprovalStatus),
163     ReviewDate(DCM_ReviewDate),
164     ReviewTime(DCM_ReviewTime),
165     ReviewerName(DCM_ReviewerName),
166     ReferencedImageSequence(),
167     ReferencedInstanceSequence(),
168     DerivationDescription(DCM_DerivationDescription),
169     DerivationCodeSequence(),
170     SourceImageSequence(),
171     SourceInstanceSequence(),
172     SOPClassUID(DCM_SOPClassUID),
173     SOPInstanceUID(DCM_SOPInstanceUID),
174     SpecificCharacterSet(DCM_SpecificCharacterSet),
175     InstanceCreationDate(DCM_InstanceCreationDate),
176     InstanceCreationTime(DCM_InstanceCreationTime),
177     InstanceCoercionDateTime(DCM_InstanceCoercionDateTime),
178     InstanceCreatorUID(DCM_InstanceCreatorUID),
179     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
180     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
181     CodingSchemeIdentificationSequence(),
182     ContextGroupIdentificationSequence(),
183     MappingResourceIdentificationSequence(),
184     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
185     ContributingEquipmentSequence(),
186     SOPInstanceStatus(DCM_SOPInstanceStatus),
187     SOPAuthorizationDateTime(DCM_SOPAuthorizationDateTime),
188     SOPAuthorizationComment(DCM_SOPAuthorizationComment),
189     AuthorizationEquipmentCertificationNumber(DCM_AuthorizationEquipmentCertificationNumber),
190     MACParametersSequence(),
191     DigitalSignaturesSequence(),
192     EncryptedAttributesSequence(),
193     OriginalAttributesSequence(),
194     HL7StructuredDocumentReferenceSequence(),
195     LongitudinalTemporalInformationModified(DCM_LongitudinalTemporalInformationModified),
196     QueryRetrieveView(DCM_QueryRetrieveView),
197     ConversionSourceAttributesSequence(),
198     ContentQualification(DCM_ContentQualification),
199     PrivateDataElementCharacteristicsSequence(),
200     ReferencedSeriesSequence(),
201     StudiesContainingOtherReferencedInstancesSequence()
202 {
203     /* set initial values for a new SOP instance */
204     updateAttributes();
205 }
206 
207 
DRTStructureSetIOD(const DRTStructureSetIOD & copy)208 DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
209   : PatientName(copy.PatientName),
210     PatientID(copy.PatientID),
211     IssuerOfPatientID(copy.IssuerOfPatientID),
212     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
213     PatientBirthDate(copy.PatientBirthDate),
214     PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
215     PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
216     PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
217     PatientSex(copy.PatientSex),
218     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
219     QualityControlSubject(copy.QualityControlSubject),
220     ReferencedPatientSequence(copy.ReferencedPatientSequence),
221     PatientBirthTime(copy.PatientBirthTime),
222     OtherPatientIDsSequence(copy.OtherPatientIDsSequence),
223     OtherPatientNames(copy.OtherPatientNames),
224     EthnicGroup(copy.EthnicGroup),
225     PatientComments(copy.PatientComments),
226     PatientSpeciesDescription(copy.PatientSpeciesDescription),
227     PatientSpeciesCodeSequence(copy.PatientSpeciesCodeSequence),
228     PatientBreedDescription(copy.PatientBreedDescription),
229     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
230     BreedRegistrationSequence(copy.BreedRegistrationSequence),
231     StrainDescription(copy.StrainDescription),
232     StrainNomenclature(copy.StrainNomenclature),
233     StrainCodeSequence(copy.StrainCodeSequence),
234     StrainAdditionalInformation(copy.StrainAdditionalInformation),
235     StrainStockSequence(copy.StrainStockSequence),
236     GeneticModificationsSequence(copy.GeneticModificationsSequence),
237     ResponsiblePerson(copy.ResponsiblePerson),
238     ResponsiblePersonRole(copy.ResponsiblePersonRole),
239     ResponsibleOrganization(copy.ResponsibleOrganization),
240     PatientIdentityRemoved(copy.PatientIdentityRemoved),
241     DeidentificationMethod(copy.DeidentificationMethod),
242     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
243     SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
244     GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
245     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
246     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
247     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
248     ClinicalTrialSiteID(copy.ClinicalTrialSiteID),
249     ClinicalTrialSiteName(copy.ClinicalTrialSiteName),
250     ClinicalTrialSubjectID(copy.ClinicalTrialSubjectID),
251     ClinicalTrialSubjectReadingID(copy.ClinicalTrialSubjectReadingID),
252     ClinicalTrialProtocolEthicsCommitteeName(copy.ClinicalTrialProtocolEthicsCommitteeName),
253     ClinicalTrialProtocolEthicsCommitteeApprovalNumber(copy.ClinicalTrialProtocolEthicsCommitteeApprovalNumber),
254     StudyInstanceUID(copy.StudyInstanceUID),
255     StudyDate(copy.StudyDate),
256     StudyTime(copy.StudyTime),
257     ReferringPhysicianName(copy.ReferringPhysicianName),
258     ReferringPhysicianIdentificationSequence(copy.ReferringPhysicianIdentificationSequence),
259     ConsultingPhysicianName(copy.ConsultingPhysicianName),
260     ConsultingPhysicianIdentificationSequence(copy.ConsultingPhysicianIdentificationSequence),
261     StudyID(copy.StudyID),
262     AccessionNumber(copy.AccessionNumber),
263     IssuerOfAccessionNumberSequence(copy.IssuerOfAccessionNumberSequence),
264     StudyDescription(copy.StudyDescription),
265     PhysiciansOfRecord(copy.PhysiciansOfRecord),
266     PhysiciansOfRecordIdentificationSequence(copy.PhysiciansOfRecordIdentificationSequence),
267     NameOfPhysiciansReadingStudy(copy.NameOfPhysiciansReadingStudy),
268     PhysiciansReadingStudyIdentificationSequence(copy.PhysiciansReadingStudyIdentificationSequence),
269     RequestingServiceCodeSequence(copy.RequestingServiceCodeSequence),
270     ReferencedStudySequence(copy.ReferencedStudySequence),
271     ProcedureCodeSequence(copy.ProcedureCodeSequence),
272     ReasonForPerformedProcedureCodeSequence(copy.ReasonForPerformedProcedureCodeSequence),
273     AdmittingDiagnosesDescription(copy.AdmittingDiagnosesDescription),
274     AdmittingDiagnosesCodeSequence(copy.AdmittingDiagnosesCodeSequence),
275     PatientAge(copy.PatientAge),
276     PatientSize(copy.PatientSize),
277     PatientWeight(copy.PatientWeight),
278     PatientBodyMassIndex(copy.PatientBodyMassIndex),
279     MeasuredAPDimension(copy.MeasuredAPDimension),
280     MeasuredLateralDimension(copy.MeasuredLateralDimension),
281     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
282     MedicalAlerts(copy.MedicalAlerts),
283     Allergies(copy.Allergies),
284     SmokingStatus(copy.SmokingStatus),
285     PregnancyStatus(copy.PregnancyStatus),
286     LastMenstrualDate(copy.LastMenstrualDate),
287     PatientState(copy.PatientState),
288     Occupation(copy.Occupation),
289     AdditionalPatientHistory(copy.AdditionalPatientHistory),
290     AdmissionID(copy.AdmissionID),
291     IssuerOfAdmissionIDSequence(copy.IssuerOfAdmissionIDSequence),
292     ServiceEpisodeID(copy.ServiceEpisodeID),
293     IssuerOfServiceEpisodeIDSequence(copy.IssuerOfServiceEpisodeIDSequence),
294     ServiceEpisodeDescription(copy.ServiceEpisodeDescription),
295     PatientSexNeutered(copy.PatientSexNeutered),
296     ClinicalTrialTimePointID(copy.ClinicalTrialTimePointID),
297     ClinicalTrialTimePointDescription(copy.ClinicalTrialTimePointDescription),
298     LongitudinalTemporalOffsetFromEvent(copy.LongitudinalTemporalOffsetFromEvent),
299     LongitudinalTemporalEventType(copy.LongitudinalTemporalEventType),
300     ConsentForClinicalTrialUseSequence(copy.ConsentForClinicalTrialUseSequence),
301     Modality(copy.Modality),
302     SeriesInstanceUID(copy.SeriesInstanceUID),
303     SeriesNumber(copy.SeriesNumber),
304     SeriesDate(copy.SeriesDate),
305     SeriesTime(copy.SeriesTime),
306     SeriesDescription(copy.SeriesDescription),
307     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
308     OperatorsName(copy.OperatorsName),
309     OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
310     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
311     RequestAttributesSequence(copy.RequestAttributesSequence),
312     PerformedProcedureStepID(copy.PerformedProcedureStepID),
313     PerformedProcedureStepStartDate(copy.PerformedProcedureStepStartDate),
314     PerformedProcedureStepStartTime(copy.PerformedProcedureStepStartTime),
315     PerformedProcedureStepEndDate(copy.PerformedProcedureStepEndDate),
316     PerformedProcedureStepEndTime(copy.PerformedProcedureStepEndTime),
317     PerformedProcedureStepDescription(copy.PerformedProcedureStepDescription),
318     PerformedProtocolCodeSequence(copy.PerformedProtocolCodeSequence),
319     CommentsOnThePerformedProcedureStep(copy.CommentsOnThePerformedProcedureStep),
320     ClinicalTrialCoordinatingCenterName(copy.ClinicalTrialCoordinatingCenterName),
321     ClinicalTrialSeriesID(copy.ClinicalTrialSeriesID),
322     ClinicalTrialSeriesDescription(copy.ClinicalTrialSeriesDescription),
323     Manufacturer(copy.Manufacturer),
324     InstitutionName(copy.InstitutionName),
325     InstitutionAddress(copy.InstitutionAddress),
326     StationName(copy.StationName),
327     InstitutionalDepartmentName(copy.InstitutionalDepartmentName),
328     ManufacturerModelName(copy.ManufacturerModelName),
329     DeviceSerialNumber(copy.DeviceSerialNumber),
330     SoftwareVersions(copy.SoftwareVersions),
331     GantryID(copy.GantryID),
332     UDISequence(copy.UDISequence),
333     SpatialResolution(copy.SpatialResolution),
334     DateOfLastCalibration(copy.DateOfLastCalibration),
335     TimeOfLastCalibration(copy.TimeOfLastCalibration),
336     PixelPaddingValue(copy.PixelPaddingValue),
337     FrameOfReferenceUID(copy.FrameOfReferenceUID),
338     PositionReferenceIndicator(copy.PositionReferenceIndicator),
339     StructureSetLabel(copy.StructureSetLabel),
340     StructureSetName(copy.StructureSetName),
341     StructureSetDescription(copy.StructureSetDescription),
342     InstanceNumber(copy.InstanceNumber),
343     StructureSetDate(copy.StructureSetDate),
344     StructureSetTime(copy.StructureSetTime),
345     ReferencedFrameOfReferenceSequence(copy.ReferencedFrameOfReferenceSequence),
346     StructureSetROISequence(copy.StructureSetROISequence),
347     PredecessorStructureSetSequence(copy.PredecessorStructureSetSequence),
348     ROIContourSequence(copy.ROIContourSequence),
349     RTROIObservationsSequence(copy.RTROIObservationsSequence),
350     ApprovalStatus(copy.ApprovalStatus),
351     ReviewDate(copy.ReviewDate),
352     ReviewTime(copy.ReviewTime),
353     ReviewerName(copy.ReviewerName),
354     ReferencedImageSequence(copy.ReferencedImageSequence),
355     ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
356     DerivationDescription(copy.DerivationDescription),
357     DerivationCodeSequence(copy.DerivationCodeSequence),
358     SourceImageSequence(copy.SourceImageSequence),
359     SourceInstanceSequence(copy.SourceInstanceSequence),
360     SOPClassUID(copy.SOPClassUID),
361     SOPInstanceUID(copy.SOPInstanceUID),
362     SpecificCharacterSet(copy.SpecificCharacterSet),
363     InstanceCreationDate(copy.InstanceCreationDate),
364     InstanceCreationTime(copy.InstanceCreationTime),
365     InstanceCoercionDateTime(copy.InstanceCoercionDateTime),
366     InstanceCreatorUID(copy.InstanceCreatorUID),
367     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
368     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
369     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
370     ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
371     MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
372     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
373     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
374     SOPInstanceStatus(copy.SOPInstanceStatus),
375     SOPAuthorizationDateTime(copy.SOPAuthorizationDateTime),
376     SOPAuthorizationComment(copy.SOPAuthorizationComment),
377     AuthorizationEquipmentCertificationNumber(copy.AuthorizationEquipmentCertificationNumber),
378     MACParametersSequence(copy.MACParametersSequence),
379     DigitalSignaturesSequence(copy.DigitalSignaturesSequence),
380     EncryptedAttributesSequence(copy.EncryptedAttributesSequence),
381     OriginalAttributesSequence(copy.OriginalAttributesSequence),
382     HL7StructuredDocumentReferenceSequence(copy.HL7StructuredDocumentReferenceSequence),
383     LongitudinalTemporalInformationModified(copy.LongitudinalTemporalInformationModified),
384     QueryRetrieveView(copy.QueryRetrieveView),
385     ConversionSourceAttributesSequence(copy.ConversionSourceAttributesSequence),
386     ContentQualification(copy.ContentQualification),
387     PrivateDataElementCharacteristicsSequence(copy.PrivateDataElementCharacteristicsSequence),
388     ReferencedSeriesSequence(copy.ReferencedSeriesSequence),
389     StudiesContainingOtherReferencedInstancesSequence(copy.StudiesContainingOtherReferencedInstancesSequence)
390 {
391 }
392 
393 
~DRTStructureSetIOD()394 DRTStructureSetIOD::~DRTStructureSetIOD()
395 {
396 }
397 
398 
operator =(const DRTStructureSetIOD & copy)399 DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy)
400 {
401     if (this != &copy)
402     {
403         PatientName = copy.PatientName;
404         PatientID = copy.PatientID;
405         IssuerOfPatientID = copy.IssuerOfPatientID;
406         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
407         PatientBirthDate = copy.PatientBirthDate;
408         PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
409         PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
410         PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
411         PatientSex = copy.PatientSex;
412         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
413         QualityControlSubject = copy.QualityControlSubject;
414         ReferencedPatientSequence = copy.ReferencedPatientSequence;
415         PatientBirthTime = copy.PatientBirthTime;
416         OtherPatientIDsSequence = copy.OtherPatientIDsSequence;
417         OtherPatientNames = copy.OtherPatientNames;
418         EthnicGroup = copy.EthnicGroup;
419         PatientComments = copy.PatientComments;
420         PatientSpeciesDescription = copy.PatientSpeciesDescription;
421         PatientSpeciesCodeSequence = copy.PatientSpeciesCodeSequence;
422         PatientBreedDescription = copy.PatientBreedDescription;
423         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
424         BreedRegistrationSequence = copy.BreedRegistrationSequence;
425         StrainDescription = copy.StrainDescription;
426         StrainNomenclature = copy.StrainNomenclature;
427         StrainCodeSequence = copy.StrainCodeSequence;
428         StrainAdditionalInformation = copy.StrainAdditionalInformation;
429         StrainStockSequence = copy.StrainStockSequence;
430         GeneticModificationsSequence = copy.GeneticModificationsSequence;
431         ResponsiblePerson = copy.ResponsiblePerson;
432         ResponsiblePersonRole = copy.ResponsiblePersonRole;
433         ResponsibleOrganization = copy.ResponsibleOrganization;
434         PatientIdentityRemoved = copy.PatientIdentityRemoved;
435         DeidentificationMethod = copy.DeidentificationMethod;
436         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
437         SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
438         GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
439         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
440         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
441         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
442         ClinicalTrialSiteID = copy.ClinicalTrialSiteID;
443         ClinicalTrialSiteName = copy.ClinicalTrialSiteName;
444         ClinicalTrialSubjectID = copy.ClinicalTrialSubjectID;
445         ClinicalTrialSubjectReadingID = copy.ClinicalTrialSubjectReadingID;
446         ClinicalTrialProtocolEthicsCommitteeName = copy.ClinicalTrialProtocolEthicsCommitteeName;
447         ClinicalTrialProtocolEthicsCommitteeApprovalNumber = copy.ClinicalTrialProtocolEthicsCommitteeApprovalNumber;
448         StudyInstanceUID = copy.StudyInstanceUID;
449         StudyDate = copy.StudyDate;
450         StudyTime = copy.StudyTime;
451         ReferringPhysicianName = copy.ReferringPhysicianName;
452         ReferringPhysicianIdentificationSequence = copy.ReferringPhysicianIdentificationSequence;
453         ConsultingPhysicianName = copy.ConsultingPhysicianName;
454         ConsultingPhysicianIdentificationSequence = copy.ConsultingPhysicianIdentificationSequence;
455         StudyID = copy.StudyID;
456         AccessionNumber = copy.AccessionNumber;
457         IssuerOfAccessionNumberSequence = copy.IssuerOfAccessionNumberSequence;
458         StudyDescription = copy.StudyDescription;
459         PhysiciansOfRecord = copy.PhysiciansOfRecord;
460         PhysiciansOfRecordIdentificationSequence = copy.PhysiciansOfRecordIdentificationSequence;
461         NameOfPhysiciansReadingStudy = copy.NameOfPhysiciansReadingStudy;
462         PhysiciansReadingStudyIdentificationSequence = copy.PhysiciansReadingStudyIdentificationSequence;
463         RequestingServiceCodeSequence = copy.RequestingServiceCodeSequence;
464         ReferencedStudySequence = copy.ReferencedStudySequence;
465         ProcedureCodeSequence = copy.ProcedureCodeSequence;
466         ReasonForPerformedProcedureCodeSequence = copy.ReasonForPerformedProcedureCodeSequence;
467         AdmittingDiagnosesDescription = copy.AdmittingDiagnosesDescription;
468         AdmittingDiagnosesCodeSequence = copy.AdmittingDiagnosesCodeSequence;
469         PatientAge = copy.PatientAge;
470         PatientSize = copy.PatientSize;
471         PatientWeight = copy.PatientWeight;
472         PatientBodyMassIndex = copy.PatientBodyMassIndex;
473         MeasuredAPDimension = copy.MeasuredAPDimension;
474         MeasuredLateralDimension = copy.MeasuredLateralDimension;
475         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
476         MedicalAlerts = copy.MedicalAlerts;
477         Allergies = copy.Allergies;
478         SmokingStatus = copy.SmokingStatus;
479         PregnancyStatus = copy.PregnancyStatus;
480         LastMenstrualDate = copy.LastMenstrualDate;
481         PatientState = copy.PatientState;
482         Occupation = copy.Occupation;
483         AdditionalPatientHistory = copy.AdditionalPatientHistory;
484         AdmissionID = copy.AdmissionID;
485         IssuerOfAdmissionIDSequence = copy.IssuerOfAdmissionIDSequence;
486         ServiceEpisodeID = copy.ServiceEpisodeID;
487         IssuerOfServiceEpisodeIDSequence = copy.IssuerOfServiceEpisodeIDSequence;
488         ServiceEpisodeDescription = copy.ServiceEpisodeDescription;
489         PatientSexNeutered = copy.PatientSexNeutered;
490         ClinicalTrialTimePointID = copy.ClinicalTrialTimePointID;
491         ClinicalTrialTimePointDescription = copy.ClinicalTrialTimePointDescription;
492         LongitudinalTemporalOffsetFromEvent = copy.LongitudinalTemporalOffsetFromEvent;
493         LongitudinalTemporalEventType = copy.LongitudinalTemporalEventType;
494         ConsentForClinicalTrialUseSequence = copy.ConsentForClinicalTrialUseSequence;
495         Modality = copy.Modality;
496         SeriesInstanceUID = copy.SeriesInstanceUID;
497         SeriesNumber = copy.SeriesNumber;
498         SeriesDate = copy.SeriesDate;
499         SeriesTime = copy.SeriesTime;
500         SeriesDescription = copy.SeriesDescription;
501         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
502         OperatorsName = copy.OperatorsName;
503         OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
504         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
505         RequestAttributesSequence = copy.RequestAttributesSequence;
506         PerformedProcedureStepID = copy.PerformedProcedureStepID;
507         PerformedProcedureStepStartDate = copy.PerformedProcedureStepStartDate;
508         PerformedProcedureStepStartTime = copy.PerformedProcedureStepStartTime;
509         PerformedProcedureStepEndDate = copy.PerformedProcedureStepEndDate;
510         PerformedProcedureStepEndTime = copy.PerformedProcedureStepEndTime;
511         PerformedProcedureStepDescription = copy.PerformedProcedureStepDescription;
512         PerformedProtocolCodeSequence = copy.PerformedProtocolCodeSequence;
513         CommentsOnThePerformedProcedureStep = copy.CommentsOnThePerformedProcedureStep;
514         ClinicalTrialCoordinatingCenterName = copy.ClinicalTrialCoordinatingCenterName;
515         ClinicalTrialSeriesID = copy.ClinicalTrialSeriesID;
516         ClinicalTrialSeriesDescription = copy.ClinicalTrialSeriesDescription;
517         Manufacturer = copy.Manufacturer;
518         InstitutionName = copy.InstitutionName;
519         InstitutionAddress = copy.InstitutionAddress;
520         StationName = copy.StationName;
521         InstitutionalDepartmentName = copy.InstitutionalDepartmentName;
522         ManufacturerModelName = copy.ManufacturerModelName;
523         DeviceSerialNumber = copy.DeviceSerialNumber;
524         SoftwareVersions = copy.SoftwareVersions;
525         GantryID = copy.GantryID;
526         UDISequence = copy.UDISequence;
527         SpatialResolution = copy.SpatialResolution;
528         DateOfLastCalibration = copy.DateOfLastCalibration;
529         TimeOfLastCalibration = copy.TimeOfLastCalibration;
530         PixelPaddingValue = copy.PixelPaddingValue;
531         FrameOfReferenceUID = copy.FrameOfReferenceUID;
532         PositionReferenceIndicator = copy.PositionReferenceIndicator;
533         StructureSetLabel = copy.StructureSetLabel;
534         StructureSetName = copy.StructureSetName;
535         StructureSetDescription = copy.StructureSetDescription;
536         InstanceNumber = copy.InstanceNumber;
537         StructureSetDate = copy.StructureSetDate;
538         StructureSetTime = copy.StructureSetTime;
539         ReferencedFrameOfReferenceSequence = copy.ReferencedFrameOfReferenceSequence;
540         StructureSetROISequence = copy.StructureSetROISequence;
541         PredecessorStructureSetSequence = copy.PredecessorStructureSetSequence;
542         ROIContourSequence = copy.ROIContourSequence;
543         RTROIObservationsSequence = copy.RTROIObservationsSequence;
544         ApprovalStatus = copy.ApprovalStatus;
545         ReviewDate = copy.ReviewDate;
546         ReviewTime = copy.ReviewTime;
547         ReviewerName = copy.ReviewerName;
548         ReferencedImageSequence = copy.ReferencedImageSequence;
549         ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
550         DerivationDescription = copy.DerivationDescription;
551         DerivationCodeSequence = copy.DerivationCodeSequence;
552         SourceImageSequence = copy.SourceImageSequence;
553         SourceInstanceSequence = copy.SourceInstanceSequence;
554         SOPClassUID = copy.SOPClassUID;
555         SOPInstanceUID = copy.SOPInstanceUID;
556         SpecificCharacterSet = copy.SpecificCharacterSet;
557         InstanceCreationDate = copy.InstanceCreationDate;
558         InstanceCreationTime = copy.InstanceCreationTime;
559         InstanceCoercionDateTime = copy.InstanceCoercionDateTime;
560         InstanceCreatorUID = copy.InstanceCreatorUID;
561         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
562         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
563         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
564         ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
565         MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
566         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
567         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
568         SOPInstanceStatus = copy.SOPInstanceStatus;
569         SOPAuthorizationDateTime = copy.SOPAuthorizationDateTime;
570         SOPAuthorizationComment = copy.SOPAuthorizationComment;
571         AuthorizationEquipmentCertificationNumber = copy.AuthorizationEquipmentCertificationNumber;
572         MACParametersSequence = copy.MACParametersSequence;
573         DigitalSignaturesSequence = copy.DigitalSignaturesSequence;
574         EncryptedAttributesSequence = copy.EncryptedAttributesSequence;
575         OriginalAttributesSequence = copy.OriginalAttributesSequence;
576         HL7StructuredDocumentReferenceSequence = copy.HL7StructuredDocumentReferenceSequence;
577         LongitudinalTemporalInformationModified = copy.LongitudinalTemporalInformationModified;
578         QueryRetrieveView = copy.QueryRetrieveView;
579         ConversionSourceAttributesSequence = copy.ConversionSourceAttributesSequence;
580         ContentQualification = copy.ContentQualification;
581         PrivateDataElementCharacteristicsSequence = copy.PrivateDataElementCharacteristicsSequence;
582         ReferencedSeriesSequence = copy.ReferencedSeriesSequence;
583         StudiesContainingOtherReferencedInstancesSequence = copy.StudiesContainingOtherReferencedInstancesSequence;
584     }
585     return *this;
586 }
587 
588 
clear()589 void DRTStructureSetIOD::clear()
590 {
591     /* clear all DICOM attributes */
592     PatientName.clear();
593     PatientID.clear();
594     IssuerOfPatientID.clear();
595     IssuerOfPatientIDQualifiersSequence.clear();
596     PatientBirthDate.clear();
597     PatientBirthDateInAlternativeCalendar.clear();
598     PatientDeathDateInAlternativeCalendar.clear();
599     PatientAlternativeCalendar.clear();
600     PatientSex.clear();
601     ReferencedPatientPhotoSequence.clear();
602     QualityControlSubject.clear();
603     ReferencedPatientSequence.clear();
604     PatientBirthTime.clear();
605     OtherPatientIDsSequence.clear();
606     OtherPatientNames.clear();
607     EthnicGroup.clear();
608     PatientComments.clear();
609     PatientSpeciesDescription.clear();
610     PatientSpeciesCodeSequence.clear();
611     PatientBreedDescription.clear();
612     PatientBreedCodeSequence.clear();
613     BreedRegistrationSequence.clear();
614     StrainDescription.clear();
615     StrainNomenclature.clear();
616     StrainCodeSequence.clear();
617     StrainAdditionalInformation.clear();
618     StrainStockSequence.clear();
619     GeneticModificationsSequence.clear();
620     ResponsiblePerson.clear();
621     ResponsiblePersonRole.clear();
622     ResponsibleOrganization.clear();
623     PatientIdentityRemoved.clear();
624     DeidentificationMethod.clear();
625     DeidentificationMethodCodeSequence.clear();
626     SourcePatientGroupIdentificationSequence.clear();
627     GroupOfPatientsIdentificationSequence.clear();
628     ClinicalTrialSponsorName.clear();
629     ClinicalTrialProtocolID.clear();
630     ClinicalTrialProtocolName.clear();
631     ClinicalTrialSiteID.clear();
632     ClinicalTrialSiteName.clear();
633     ClinicalTrialSubjectID.clear();
634     ClinicalTrialSubjectReadingID.clear();
635     ClinicalTrialProtocolEthicsCommitteeName.clear();
636     ClinicalTrialProtocolEthicsCommitteeApprovalNumber.clear();
637     StudyInstanceUID.clear();
638     StudyDate.clear();
639     StudyTime.clear();
640     ReferringPhysicianName.clear();
641     ReferringPhysicianIdentificationSequence.clear();
642     ConsultingPhysicianName.clear();
643     ConsultingPhysicianIdentificationSequence.clear();
644     StudyID.clear();
645     AccessionNumber.clear();
646     IssuerOfAccessionNumberSequence.clear();
647     StudyDescription.clear();
648     PhysiciansOfRecord.clear();
649     PhysiciansOfRecordIdentificationSequence.clear();
650     NameOfPhysiciansReadingStudy.clear();
651     PhysiciansReadingStudyIdentificationSequence.clear();
652     RequestingServiceCodeSequence.clear();
653     ReferencedStudySequence.clear();
654     ProcedureCodeSequence.clear();
655     ReasonForPerformedProcedureCodeSequence.clear();
656     AdmittingDiagnosesDescription.clear();
657     AdmittingDiagnosesCodeSequence.clear();
658     PatientAge.clear();
659     PatientSize.clear();
660     PatientWeight.clear();
661     PatientBodyMassIndex.clear();
662     MeasuredAPDimension.clear();
663     MeasuredLateralDimension.clear();
664     PatientSizeCodeSequence.clear();
665     MedicalAlerts.clear();
666     Allergies.clear();
667     SmokingStatus.clear();
668     PregnancyStatus.clear();
669     LastMenstrualDate.clear();
670     PatientState.clear();
671     Occupation.clear();
672     AdditionalPatientHistory.clear();
673     AdmissionID.clear();
674     IssuerOfAdmissionIDSequence.clear();
675     ServiceEpisodeID.clear();
676     IssuerOfServiceEpisodeIDSequence.clear();
677     ServiceEpisodeDescription.clear();
678     PatientSexNeutered.clear();
679     ClinicalTrialTimePointID.clear();
680     ClinicalTrialTimePointDescription.clear();
681     LongitudinalTemporalOffsetFromEvent.clear();
682     LongitudinalTemporalEventType.clear();
683     ConsentForClinicalTrialUseSequence.clear();
684     Modality.clear();
685     SeriesInstanceUID.clear();
686     SeriesNumber.clear();
687     SeriesDate.clear();
688     SeriesTime.clear();
689     SeriesDescription.clear();
690     SeriesDescriptionCodeSequence.clear();
691     OperatorsName.clear();
692     OperatorIdentificationSequence.clear();
693     ReferencedPerformedProcedureStepSequence.clear();
694     RequestAttributesSequence.clear();
695     PerformedProcedureStepID.clear();
696     PerformedProcedureStepStartDate.clear();
697     PerformedProcedureStepStartTime.clear();
698     PerformedProcedureStepEndDate.clear();
699     PerformedProcedureStepEndTime.clear();
700     PerformedProcedureStepDescription.clear();
701     PerformedProtocolCodeSequence.clear();
702     CommentsOnThePerformedProcedureStep.clear();
703     ClinicalTrialCoordinatingCenterName.clear();
704     ClinicalTrialSeriesID.clear();
705     ClinicalTrialSeriesDescription.clear();
706     Manufacturer.clear();
707     InstitutionName.clear();
708     InstitutionAddress.clear();
709     StationName.clear();
710     InstitutionalDepartmentName.clear();
711     ManufacturerModelName.clear();
712     DeviceSerialNumber.clear();
713     SoftwareVersions.clear();
714     GantryID.clear();
715     UDISequence.clear();
716     SpatialResolution.clear();
717     DateOfLastCalibration.clear();
718     TimeOfLastCalibration.clear();
719     PixelPaddingValue.clear();
720     FrameOfReferenceUID.clear();
721     PositionReferenceIndicator.clear();
722     StructureSetLabel.clear();
723     StructureSetName.clear();
724     StructureSetDescription.clear();
725     InstanceNumber.clear();
726     StructureSetDate.clear();
727     StructureSetTime.clear();
728     ReferencedFrameOfReferenceSequence.clear();
729     StructureSetROISequence.clear();
730     PredecessorStructureSetSequence.clear();
731     ROIContourSequence.clear();
732     RTROIObservationsSequence.clear();
733     ApprovalStatus.clear();
734     ReviewDate.clear();
735     ReviewTime.clear();
736     ReviewerName.clear();
737     ReferencedImageSequence.clear();
738     ReferencedInstanceSequence.clear();
739     DerivationDescription.clear();
740     DerivationCodeSequence.clear();
741     SourceImageSequence.clear();
742     SourceInstanceSequence.clear();
743     SOPClassUID.clear();
744     SOPInstanceUID.clear();
745     SpecificCharacterSet.clear();
746     InstanceCreationDate.clear();
747     InstanceCreationTime.clear();
748     InstanceCoercionDateTime.clear();
749     InstanceCreatorUID.clear();
750     RelatedGeneralSOPClassUID.clear();
751     OriginalSpecializedSOPClassUID.clear();
752     CodingSchemeIdentificationSequence.clear();
753     ContextGroupIdentificationSequence.clear();
754     MappingResourceIdentificationSequence.clear();
755     TimezoneOffsetFromUTC.clear();
756     ContributingEquipmentSequence.clear();
757     SOPInstanceStatus.clear();
758     SOPAuthorizationDateTime.clear();
759     SOPAuthorizationComment.clear();
760     AuthorizationEquipmentCertificationNumber.clear();
761     MACParametersSequence.clear();
762     DigitalSignaturesSequence.clear();
763     EncryptedAttributesSequence.clear();
764     OriginalAttributesSequence.clear();
765     HL7StructuredDocumentReferenceSequence.clear();
766     LongitudinalTemporalInformationModified.clear();
767     QueryRetrieveView.clear();
768     ConversionSourceAttributesSequence.clear();
769     ContentQualification.clear();
770     PrivateDataElementCharacteristicsSequence.clear();
771     ReferencedSeriesSequence.clear();
772     StudiesContainingOtherReferencedInstancesSequence.clear();
773 }
774 
775 
isValid()776 OFBool DRTStructureSetIOD::isValid()
777 {
778     /* tbd: check whether object is valid */
779     return OFTrue;
780 }
781 
782 
checkDatasetForReading(DcmItem & dataset)783 OFCondition DRTStructureSetIOD::checkDatasetForReading(DcmItem &dataset)
784 {
785     OFCondition result = EC_Normal;
786     /* check SOP class UID */
787     DcmUniqueIdentifier sopClassUID(DCM_SOPClassUID);
788     result = getAndCheckElementFromDataset(dataset, sopClassUID, "1", "1", "SOPCommonModule");
789     if (result.good())
790     {
791         OFString tmpString;
792         getStringValueFromElement(sopClassUID, tmpString);
793         if (tmpString != UID_RTStructureSetStorage)
794         {
795             DCMRT_ERROR("Invalid value for attribute SOPClassUID (0008,0016)");
796             result = RT_EC_InvalidValue;
797         }
798     }
799     return result;
800 }
801 
802 
updateAttributes()803 void DRTStructureSetIOD::updateAttributes()
804 {
805     SOPClassUID.putString(UID_RTStructureSetStorage);
806 }
807 
808 
read(DcmItem & dataset)809 OFCondition DRTStructureSetIOD::read(DcmItem &dataset)
810 {
811     /* re-initialize object */
812     clear();
813     /* check SOP class UID first */
814     OFCondition result = checkDatasetForReading(dataset);
815     /* read data from PatientIE, StudyIE, SeriesIE */
816     if (result.good())
817         result = readSeriesData(dataset);
818     if (result.good())
819     {
820         // --- GeneralEquipmentModule (M) ---
821         getAndCheckElementFromDataset(dataset, Manufacturer, "1", "2", "GeneralEquipmentModule");
822         getAndCheckElementFromDataset(dataset, InstitutionName, "1", "3", "GeneralEquipmentModule");
823         getAndCheckElementFromDataset(dataset, InstitutionAddress, "1", "3", "GeneralEquipmentModule");
824         getAndCheckElementFromDataset(dataset, StationName, "1", "3", "GeneralEquipmentModule");
825         getAndCheckElementFromDataset(dataset, InstitutionalDepartmentName, "1", "3", "GeneralEquipmentModule");
826         getAndCheckElementFromDataset(dataset, ManufacturerModelName, "1", "3", "GeneralEquipmentModule");
827         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
828         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
829         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
830         UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
831         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
832         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
833         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
834         getAndCheckElementFromDataset(dataset, PixelPaddingValue, "1", "1C", "GeneralEquipmentModule");
835 
836         // --- FrameOfReferenceModule (U) ---
837         if (dataset.tagExists(DCM_FrameOfReferenceUID) ||
838             dataset.tagExists(DCM_PositionReferenceIndicator))
839         {
840             getAndCheckElementFromDataset(dataset, FrameOfReferenceUID, "1", "1", "FrameOfReferenceModule");
841             getAndCheckElementFromDataset(dataset, PositionReferenceIndicator, "1", "2", "FrameOfReferenceModule");
842         }
843 
844         // --- StructureSetModule (M) ---
845         getAndCheckElementFromDataset(dataset, StructureSetLabel, "1", "1", "StructureSetModule");
846         getAndCheckElementFromDataset(dataset, StructureSetName, "1", "3", "StructureSetModule");
847         getAndCheckElementFromDataset(dataset, StructureSetDescription, "1", "3", "StructureSetModule");
848         getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "StructureSetModule");
849         getAndCheckElementFromDataset(dataset, StructureSetDate, "1", "2", "StructureSetModule");
850         getAndCheckElementFromDataset(dataset, StructureSetTime, "1", "2", "StructureSetModule");
851         ReferencedFrameOfReferenceSequence.read(dataset, "1-n", "3", "StructureSetModule");
852         StructureSetROISequence.read(dataset, "1-n", "1", "StructureSetModule");
853         PredecessorStructureSetSequence.read(dataset, "1-n", "3", "StructureSetModule");
854 
855         // --- ROIContourModule (M) ---
856         ROIContourSequence.read(dataset, "1-n", "1", "ROIContourModule");
857 
858         // --- RTROIObservationsModule (M) ---
859         RTROIObservationsSequence.read(dataset, "1-n", "1", "RTROIObservationsModule");
860 
861         // --- ApprovalModule (U) ---
862         if (dataset.tagExists(DCM_ApprovalStatus))
863         {
864             getAndCheckElementFromDataset(dataset, ApprovalStatus, "1", "1", "ApprovalModule");
865             getAndCheckElementFromDataset(dataset, ReviewDate, "1", "2C", "ApprovalModule");
866             getAndCheckElementFromDataset(dataset, ReviewTime, "1", "2C", "ApprovalModule");
867             getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule");
868         }
869 
870         // --- GeneralReferenceModule (U) ---
871         ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
872         ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
873         getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
874         DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
875         SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
876         SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
877 
878         // --- SOPCommonModule (M) ---
879         getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule");
880         getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule");
881         getAndCheckElementFromDataset(dataset, SpecificCharacterSet, "1-n", "1C", "SOPCommonModule");
882         getAndCheckElementFromDataset(dataset, InstanceCreationDate, "1", "3", "SOPCommonModule");
883         getAndCheckElementFromDataset(dataset, InstanceCreationTime, "1", "3", "SOPCommonModule");
884         getAndCheckElementFromDataset(dataset, InstanceCoercionDateTime, "1", "3", "SOPCommonModule");
885         getAndCheckElementFromDataset(dataset, InstanceCreatorUID, "1", "3", "SOPCommonModule");
886         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
887         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
888         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
889         ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
890         MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
891         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
892         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
893         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
894         getAndCheckElementFromDataset(dataset, SOPInstanceStatus, "1", "3", "SOPCommonModule");
895         getAndCheckElementFromDataset(dataset, SOPAuthorizationDateTime, "1", "3", "SOPCommonModule");
896         getAndCheckElementFromDataset(dataset, SOPAuthorizationComment, "1", "3", "SOPCommonModule");
897         getAndCheckElementFromDataset(dataset, AuthorizationEquipmentCertificationNumber, "1", "3", "SOPCommonModule");
898         MACParametersSequence.read(dataset, "1-n", "3", "SOPCommonModule");
899         DigitalSignaturesSequence.read(dataset, "1-n", "3", "SOPCommonModule");
900         EncryptedAttributesSequence.read(dataset, "1-n", "1C", "SOPCommonModule");
901         OriginalAttributesSequence.read(dataset, "1-n", "3", "SOPCommonModule");
902         HL7StructuredDocumentReferenceSequence.read(dataset, "1-n", "1C", "SOPCommonModule");
903         getAndCheckElementFromDataset(dataset, LongitudinalTemporalInformationModified, "1", "3", "SOPCommonModule");
904         getAndCheckElementFromDataset(dataset, QueryRetrieveView, "1", "1C", "SOPCommonModule");
905         ConversionSourceAttributesSequence.read(dataset, "1-n", "1C", "SOPCommonModule");
906         getAndCheckElementFromDataset(dataset, ContentQualification, "1", "3", "SOPCommonModule");
907         PrivateDataElementCharacteristicsSequence.read(dataset, "1-n", "3", "SOPCommonModule");
908 
909         // --- CommonInstanceReferenceModule (U) ---
910         ReferencedSeriesSequence.read(dataset, "1-n", "1C", "CommonInstanceReferenceModule");
911         StudiesContainingOtherReferencedInstancesSequence.read(dataset, "1-n", "1C", "CommonInstanceReferenceModule");
912     }
913     return result;
914 }
915 
916 
readPatientData(DcmItem & dataset)917 OFCondition DRTStructureSetIOD::readPatientData(DcmItem &dataset)
918 {
919     OFCondition result = EC_Normal;
920 
921     // --- PatientModule (M) ---
922     getAndCheckElementFromDataset(dataset, PatientName, "1", "2", "PatientModule");
923     getAndCheckElementFromDataset(dataset, PatientID, "1", "2", "PatientModule");
924     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
925     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
926     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
927     getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
928     getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
929     getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
930     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
931     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
932     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
933     ReferencedPatientSequence.read(dataset, "1-n", "3", "PatientModule");
934     getAndCheckElementFromDataset(dataset, PatientBirthTime, "1", "3", "PatientModule");
935     OtherPatientIDsSequence.read(dataset, "1-n", "3", "PatientModule");
936     getAndCheckElementFromDataset(dataset, OtherPatientNames, "1-n", "3", "PatientModule");
937     getAndCheckElementFromDataset(dataset, EthnicGroup, "1", "3", "PatientModule");
938     getAndCheckElementFromDataset(dataset, PatientComments, "1", "3", "PatientModule");
939     getAndCheckElementFromDataset(dataset, PatientSpeciesDescription, "1", "1C", "PatientModule");
940     PatientSpeciesCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
941     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
942     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
943     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
944     getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
945     getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
946     StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
947     getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
948     StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
949     GeneticModificationsSequence.read(dataset, "1-n", "3", "PatientModule");
950     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
951     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
952     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
953     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
954     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
955     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
956     SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
957     GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
958 
959     // --- ClinicalTrialSubjectModule (U) ---
960     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
961         dataset.tagExists(DCM_ClinicalTrialProtocolID) ||
962         dataset.tagExists(DCM_ClinicalTrialProtocolName) ||
963         dataset.tagExists(DCM_ClinicalTrialSiteID) ||
964         dataset.tagExists(DCM_ClinicalTrialSiteName))
965     {
966         getAndCheckElementFromDataset(dataset, ClinicalTrialSponsorName, "1", "1", "ClinicalTrialSubjectModule");
967         getAndCheckElementFromDataset(dataset, ClinicalTrialProtocolID, "1", "1", "ClinicalTrialSubjectModule");
968         getAndCheckElementFromDataset(dataset, ClinicalTrialProtocolName, "1", "2", "ClinicalTrialSubjectModule");
969         getAndCheckElementFromDataset(dataset, ClinicalTrialSiteID, "1", "2", "ClinicalTrialSubjectModule");
970         getAndCheckElementFromDataset(dataset, ClinicalTrialSiteName, "1", "2", "ClinicalTrialSubjectModule");
971         getAndCheckElementFromDataset(dataset, ClinicalTrialSubjectID, "1", "1C", "ClinicalTrialSubjectModule");
972         getAndCheckElementFromDataset(dataset, ClinicalTrialSubjectReadingID, "1", "1C", "ClinicalTrialSubjectModule");
973         getAndCheckElementFromDataset(dataset, ClinicalTrialProtocolEthicsCommitteeName, "1", "1C", "ClinicalTrialSubjectModule");
974         getAndCheckElementFromDataset(dataset, ClinicalTrialProtocolEthicsCommitteeApprovalNumber, "1", "3", "ClinicalTrialSubjectModule");
975     }
976     return result;
977 }
978 
979 
readStudyData(DcmItem & dataset)980 OFCondition DRTStructureSetIOD::readStudyData(DcmItem &dataset)
981 {
982     /* read data from PatientIE */
983     OFCondition result = readPatientData(dataset);
984     if (result.good())
985     {
986         // --- GeneralStudyModule (M) ---
987         getAndCheckElementFromDataset(dataset, StudyInstanceUID, "1", "1", "GeneralStudyModule");
988         getAndCheckElementFromDataset(dataset, StudyDate, "1", "2", "GeneralStudyModule");
989         getAndCheckElementFromDataset(dataset, StudyTime, "1", "2", "GeneralStudyModule");
990         getAndCheckElementFromDataset(dataset, ReferringPhysicianName, "1", "2", "GeneralStudyModule");
991         ReferringPhysicianIdentificationSequence.read(dataset, "1-n", "3", "GeneralStudyModule");
992         getAndCheckElementFromDataset(dataset, ConsultingPhysicianName, "1-n", "3", "GeneralStudyModule");
993         ConsultingPhysicianIdentificationSequence.read(dataset, "1-n", "3", "GeneralStudyModule");
994         getAndCheckElementFromDataset(dataset, StudyID, "1", "2", "GeneralStudyModule");
995         getAndCheckElementFromDataset(dataset, AccessionNumber, "1", "2", "GeneralStudyModule");
996         IssuerOfAccessionNumberSequence.read(dataset, "1-n", "3", "GeneralStudyModule");
997         getAndCheckElementFromDataset(dataset, StudyDescription, "1", "3", "GeneralStudyModule");
998         getAndCheckElementFromDataset(dataset, PhysiciansOfRecord, "1-n", "3", "GeneralStudyModule");
999         PhysiciansOfRecordIdentificationSequence.read(dataset, "1-n", "3", "GeneralStudyModule");
1000         getAndCheckElementFromDataset(dataset, NameOfPhysiciansReadingStudy, "1-n", "3", "GeneralStudyModule");
1001         PhysiciansReadingStudyIdentificationSequence.read(dataset, "1-n", "3", "GeneralStudyModule");
1002         RequestingServiceCodeSequence.read(dataset, "1-n", "3", "GeneralStudyModule");
1003         ReferencedStudySequence.read(dataset, "1-n", "3", "GeneralStudyModule");
1004         ProcedureCodeSequence.read(dataset, "1-n", "3", "GeneralStudyModule");
1005         ReasonForPerformedProcedureCodeSequence.read(dataset, "1-n", "3", "GeneralStudyModule");
1006 
1007         // --- PatientStudyModule (U) ---
1008         getAndCheckElementFromDataset(dataset, AdmittingDiagnosesDescription, "1-n", "3", "PatientStudyModule");
1009         AdmittingDiagnosesCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
1010         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
1011         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
1012         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
1013         getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
1014         getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
1015         getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
1016         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
1017         getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
1018         getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
1019         getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
1020         getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
1021         getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
1022         getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
1023         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
1024         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
1025         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
1026         IssuerOfAdmissionIDSequence.read(dataset, "1-n", "3", "PatientStudyModule");
1027         getAndCheckElementFromDataset(dataset, ServiceEpisodeID, "1", "3", "PatientStudyModule");
1028         IssuerOfServiceEpisodeIDSequence.read(dataset, "1-n", "3", "PatientStudyModule");
1029         getAndCheckElementFromDataset(dataset, ServiceEpisodeDescription, "1", "3", "PatientStudyModule");
1030         getAndCheckElementFromDataset(dataset, PatientSexNeutered, "1", "2C", "PatientStudyModule");
1031 
1032         // --- ClinicalTrialStudyModule (U) ---
1033         if (dataset.tagExists(DCM_ClinicalTrialTimePointID))
1034         {
1035             getAndCheckElementFromDataset(dataset, ClinicalTrialTimePointID, "1", "2", "ClinicalTrialStudyModule");
1036             getAndCheckElementFromDataset(dataset, ClinicalTrialTimePointDescription, "1", "3", "ClinicalTrialStudyModule");
1037             getAndCheckElementFromDataset(dataset, LongitudinalTemporalOffsetFromEvent, "1", "3", "ClinicalTrialStudyModule");
1038             getAndCheckElementFromDataset(dataset, LongitudinalTemporalEventType, "1", "1C", "ClinicalTrialStudyModule");
1039             ConsentForClinicalTrialUseSequence.read(dataset, "1-n", "3", "ClinicalTrialStudyModule");
1040         }
1041     }
1042     return result;
1043 }
1044 
1045 
readSeriesData(DcmItem & dataset)1046 OFCondition DRTStructureSetIOD::readSeriesData(DcmItem &dataset)
1047 {
1048     /* read data from PatientIE, StudyIE */
1049     OFCondition result = readStudyData(dataset);
1050     if (result.good())
1051     {
1052         // --- RTSeriesModule (M) ---
1053         getAndCheckElementFromDataset(dataset, Modality, "1", "1", "RTSeriesModule");
1054         getAndCheckElementFromDataset(dataset, SeriesInstanceUID, "1", "1", "RTSeriesModule");
1055         getAndCheckElementFromDataset(dataset, SeriesNumber, "1", "2", "RTSeriesModule");
1056         getAndCheckElementFromDataset(dataset, SeriesDate, "1", "3", "RTSeriesModule");
1057         getAndCheckElementFromDataset(dataset, SeriesTime, "1", "3", "RTSeriesModule");
1058         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
1059         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
1060         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
1061         OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
1062         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
1063         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
1064         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
1065         getAndCheckElementFromDataset(dataset, PerformedProcedureStepStartDate, "1", "3", "RTSeriesModule");
1066         getAndCheckElementFromDataset(dataset, PerformedProcedureStepStartTime, "1", "3", "RTSeriesModule");
1067         getAndCheckElementFromDataset(dataset, PerformedProcedureStepEndDate, "1", "3", "RTSeriesModule");
1068         getAndCheckElementFromDataset(dataset, PerformedProcedureStepEndTime, "1", "3", "RTSeriesModule");
1069         getAndCheckElementFromDataset(dataset, PerformedProcedureStepDescription, "1", "3", "RTSeriesModule");
1070         PerformedProtocolCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
1071         getAndCheckElementFromDataset(dataset, CommentsOnThePerformedProcedureStep, "1", "3", "RTSeriesModule");
1072 
1073         // --- ClinicalTrialSeriesModule (U) ---
1074         if (dataset.tagExists(DCM_ClinicalTrialCoordinatingCenterName))
1075         {
1076             getAndCheckElementFromDataset(dataset, ClinicalTrialCoordinatingCenterName, "1", "2", "ClinicalTrialSeriesModule");
1077             getAndCheckElementFromDataset(dataset, ClinicalTrialSeriesID, "1", "3", "ClinicalTrialSeriesModule");
1078             getAndCheckElementFromDataset(dataset, ClinicalTrialSeriesDescription, "1", "3", "ClinicalTrialSeriesModule");
1079         }
1080     }
1081     return result;
1082 }
1083 
1084 
write(DcmItem & dataset)1085 OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
1086 {
1087     OFCondition result = EC_Normal;
1088     /* only write valid objects */
1089     if (isValid())
1090     {
1091         /* update various DICOM attributes */
1092         updateAttributes();
1093 
1094         // --- PatientModule (M) ---
1095         addElementToDataset(result, dataset, new DcmPersonName(PatientName), "1", "2", "PatientModule");
1096         addElementToDataset(result, dataset, new DcmLongString(PatientID), "1", "2", "PatientModule");
1097         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
1098         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
1099         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
1100         addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
1101         addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
1102         addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
1103         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
1104         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
1105         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
1106         if (result.good()) result = ReferencedPatientSequence.write(dataset, "1-n" ,"3", "PatientModule");
1107         addElementToDataset(result, dataset, new DcmTime(PatientBirthTime), "1", "3", "PatientModule");
1108         if (result.good()) result = OtherPatientIDsSequence.write(dataset, "1-n" ,"3", "PatientModule");
1109         addElementToDataset(result, dataset, new DcmPersonName(OtherPatientNames), "1-n", "3", "PatientModule");
1110         addElementToDataset(result, dataset, new DcmShortString(EthnicGroup), "1", "3", "PatientModule");
1111         addElementToDataset(result, dataset, new DcmLongText(PatientComments), "1", "3", "PatientModule");
1112         addElementToDataset(result, dataset, new DcmLongString(PatientSpeciesDescription), "1", "1C", "PatientModule");
1113         if (result.good()) result = PatientSpeciesCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
1114         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
1115         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
1116         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
1117         addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
1118         addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
1119         if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
1120         addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
1121         if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
1122         if (result.good()) result = GeneticModificationsSequence.write(dataset, "1-n" ,"3", "PatientModule");
1123         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
1124         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
1125         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
1126         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
1127         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
1128         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
1129         if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
1130         if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
1131 
1132         // --- ClinicalTrialSubjectModule (U) ---
1133         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
1134         {
1135             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialSponsorName), "1", "1", "ClinicalTrialSubjectModule");
1136             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialProtocolID), "1", "1", "ClinicalTrialSubjectModule");
1137             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialProtocolName), "1", "2", "ClinicalTrialSubjectModule");
1138             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialSiteID), "1", "2", "ClinicalTrialSubjectModule");
1139             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialSiteName), "1", "2", "ClinicalTrialSubjectModule");
1140             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialSubjectID), "1", "1C", "ClinicalTrialSubjectModule");
1141             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialSubjectReadingID), "1", "1C", "ClinicalTrialSubjectModule");
1142             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialProtocolEthicsCommitteeName), "1", "1C", "ClinicalTrialSubjectModule");
1143             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialProtocolEthicsCommitteeApprovalNumber), "1", "3", "ClinicalTrialSubjectModule");
1144         }
1145 
1146         // --- GeneralStudyModule (M) ---
1147         addElementToDataset(result, dataset, new DcmUniqueIdentifier(StudyInstanceUID), "1", "1", "GeneralStudyModule");
1148         addElementToDataset(result, dataset, new DcmDate(StudyDate), "1", "2", "GeneralStudyModule");
1149         addElementToDataset(result, dataset, new DcmTime(StudyTime), "1", "2", "GeneralStudyModule");
1150         addElementToDataset(result, dataset, new DcmPersonName(ReferringPhysicianName), "1", "2", "GeneralStudyModule");
1151         if (result.good()) result = ReferringPhysicianIdentificationSequence.write(dataset, "1-n" ,"3", "GeneralStudyModule");
1152         addElementToDataset(result, dataset, new DcmPersonName(ConsultingPhysicianName), "1-n", "3", "GeneralStudyModule");
1153         if (result.good()) result = ConsultingPhysicianIdentificationSequence.write(dataset, "1-n" ,"3", "GeneralStudyModule");
1154         addElementToDataset(result, dataset, new DcmShortString(StudyID), "1", "2", "GeneralStudyModule");
1155         addElementToDataset(result, dataset, new DcmShortString(AccessionNumber), "1", "2", "GeneralStudyModule");
1156         if (result.good()) result = IssuerOfAccessionNumberSequence.write(dataset, "1-n" ,"3", "GeneralStudyModule");
1157         addElementToDataset(result, dataset, new DcmLongString(StudyDescription), "1", "3", "GeneralStudyModule");
1158         addElementToDataset(result, dataset, new DcmPersonName(PhysiciansOfRecord), "1-n", "3", "GeneralStudyModule");
1159         if (result.good()) result = PhysiciansOfRecordIdentificationSequence.write(dataset, "1-n" ,"3", "GeneralStudyModule");
1160         addElementToDataset(result, dataset, new DcmPersonName(NameOfPhysiciansReadingStudy), "1-n", "3", "GeneralStudyModule");
1161         if (result.good()) result = PhysiciansReadingStudyIdentificationSequence.write(dataset, "1-n" ,"3", "GeneralStudyModule");
1162         if (result.good()) result = RequestingServiceCodeSequence.write(dataset, "1-n" ,"3", "GeneralStudyModule");
1163         if (result.good()) result = ReferencedStudySequence.write(dataset, "1-n" ,"3", "GeneralStudyModule");
1164         if (result.good()) result = ProcedureCodeSequence.write(dataset, "1-n" ,"3", "GeneralStudyModule");
1165         if (result.good()) result = ReasonForPerformedProcedureCodeSequence.write(dataset, "1-n" ,"3", "GeneralStudyModule");
1166 
1167         // --- PatientStudyModule (U) ---
1168         if (isPatientStudyModulePresent(OFFalse /*complete*/))
1169         {
1170             addElementToDataset(result, dataset, new DcmLongString(AdmittingDiagnosesDescription), "1-n", "3", "PatientStudyModule");
1171             if (result.good()) result = AdmittingDiagnosesCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
1172             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
1173             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
1174             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
1175             addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
1176             addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
1177             addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
1178             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
1179             addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
1180             addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
1181             addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
1182             addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
1183             addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
1184             addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
1185             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
1186             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
1187             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
1188             if (result.good()) result = IssuerOfAdmissionIDSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
1189             addElementToDataset(result, dataset, new DcmLongString(ServiceEpisodeID), "1", "3", "PatientStudyModule");
1190             if (result.good()) result = IssuerOfServiceEpisodeIDSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
1191             addElementToDataset(result, dataset, new DcmLongString(ServiceEpisodeDescription), "1", "3", "PatientStudyModule");
1192             addElementToDataset(result, dataset, new DcmCodeString(PatientSexNeutered), "1", "2C", "PatientStudyModule");
1193         }
1194 
1195         // --- ClinicalTrialStudyModule (U) ---
1196         if (isClinicalTrialStudyModulePresent(OFFalse /*complete*/))
1197         {
1198             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialTimePointID), "1", "2", "ClinicalTrialStudyModule");
1199             addElementToDataset(result, dataset, new DcmShortText(ClinicalTrialTimePointDescription), "1", "3", "ClinicalTrialStudyModule");
1200             addElementToDataset(result, dataset, new DcmFloatingPointDouble(LongitudinalTemporalOffsetFromEvent), "1", "3", "ClinicalTrialStudyModule");
1201             addElementToDataset(result, dataset, new DcmCodeString(LongitudinalTemporalEventType), "1", "1C", "ClinicalTrialStudyModule");
1202             if (result.good()) result = ConsentForClinicalTrialUseSequence.write(dataset, "1-n" ,"3", "ClinicalTrialStudyModule");
1203         }
1204 
1205         // --- RTSeriesModule (M) ---
1206         addElementToDataset(result, dataset, new DcmCodeString(Modality), "1", "1", "RTSeriesModule");
1207         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SeriesInstanceUID), "1", "1", "RTSeriesModule");
1208         addElementToDataset(result, dataset, new DcmIntegerString(SeriesNumber), "1", "2", "RTSeriesModule");
1209         addElementToDataset(result, dataset, new DcmDate(SeriesDate), "1", "3", "RTSeriesModule");
1210         addElementToDataset(result, dataset, new DcmTime(SeriesTime), "1", "3", "RTSeriesModule");
1211         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
1212         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
1213         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
1214         if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
1215         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
1216         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
1217         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
1218         addElementToDataset(result, dataset, new DcmDate(PerformedProcedureStepStartDate), "1", "3", "RTSeriesModule");
1219         addElementToDataset(result, dataset, new DcmTime(PerformedProcedureStepStartTime), "1", "3", "RTSeriesModule");
1220         addElementToDataset(result, dataset, new DcmDate(PerformedProcedureStepEndDate), "1", "3", "RTSeriesModule");
1221         addElementToDataset(result, dataset, new DcmTime(PerformedProcedureStepEndTime), "1", "3", "RTSeriesModule");
1222         addElementToDataset(result, dataset, new DcmLongString(PerformedProcedureStepDescription), "1", "3", "RTSeriesModule");
1223         if (result.good()) result = PerformedProtocolCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
1224         addElementToDataset(result, dataset, new DcmShortText(CommentsOnThePerformedProcedureStep), "1", "3", "RTSeriesModule");
1225 
1226         // --- ClinicalTrialSeriesModule (U) ---
1227         if (isClinicalTrialSeriesModulePresent(OFFalse /*complete*/))
1228         {
1229             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialCoordinatingCenterName), "1", "2", "ClinicalTrialSeriesModule");
1230             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialSeriesID), "1", "3", "ClinicalTrialSeriesModule");
1231             addElementToDataset(result, dataset, new DcmLongString(ClinicalTrialSeriesDescription), "1", "3", "ClinicalTrialSeriesModule");
1232         }
1233 
1234         // --- GeneralEquipmentModule (M) ---
1235         addElementToDataset(result, dataset, new DcmLongString(Manufacturer), "1", "2", "GeneralEquipmentModule");
1236         addElementToDataset(result, dataset, new DcmLongString(InstitutionName), "1", "3", "GeneralEquipmentModule");
1237         addElementToDataset(result, dataset, new DcmShortText(InstitutionAddress), "1", "3", "GeneralEquipmentModule");
1238         addElementToDataset(result, dataset, new DcmShortString(StationName), "1", "3", "GeneralEquipmentModule");
1239         addElementToDataset(result, dataset, new DcmLongString(InstitutionalDepartmentName), "1", "3", "GeneralEquipmentModule");
1240         addElementToDataset(result, dataset, new DcmLongString(ManufacturerModelName), "1", "3", "GeneralEquipmentModule");
1241         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
1242         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
1243         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
1244         if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
1245         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
1246         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
1247         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
1248         addElementToDataset(result, dataset, new DcmUnsignedShort(PixelPaddingValue), "1", "1C", "GeneralEquipmentModule");
1249 
1250         // --- FrameOfReferenceModule (U) ---
1251         if (isFrameOfReferenceModulePresent(OFFalse /*complete*/))
1252         {
1253             addElementToDataset(result, dataset, new DcmUniqueIdentifier(FrameOfReferenceUID), "1", "1", "FrameOfReferenceModule");
1254             addElementToDataset(result, dataset, new DcmLongString(PositionReferenceIndicator), "1", "2", "FrameOfReferenceModule");
1255         }
1256 
1257         // --- StructureSetModule (M) ---
1258         addElementToDataset(result, dataset, new DcmShortString(StructureSetLabel), "1", "1", "StructureSetModule");
1259         addElementToDataset(result, dataset, new DcmLongString(StructureSetName), "1", "3", "StructureSetModule");
1260         addElementToDataset(result, dataset, new DcmShortText(StructureSetDescription), "1", "3", "StructureSetModule");
1261         addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "StructureSetModule");
1262         addElementToDataset(result, dataset, new DcmDate(StructureSetDate), "1", "2", "StructureSetModule");
1263         addElementToDataset(result, dataset, new DcmTime(StructureSetTime), "1", "2", "StructureSetModule");
1264         if (result.good()) result = ReferencedFrameOfReferenceSequence.write(dataset, "1-n" ,"3", "StructureSetModule");
1265         if (result.good()) result = StructureSetROISequence.write(dataset, "1-n" ,"1", "StructureSetModule");
1266         if (result.good()) result = PredecessorStructureSetSequence.write(dataset, "1-n" ,"3", "StructureSetModule");
1267 
1268         // --- ROIContourModule (M) ---
1269         if (result.good()) result = ROIContourSequence.write(dataset, "1-n" ,"1", "ROIContourModule");
1270 
1271         // --- RTROIObservationsModule (M) ---
1272         if (result.good()) result = RTROIObservationsSequence.write(dataset, "1-n" ,"1", "RTROIObservationsModule");
1273 
1274         // --- ApprovalModule (U) ---
1275         if (isApprovalModulePresent(OFFalse /*complete*/))
1276         {
1277             addElementToDataset(result, dataset, new DcmCodeString(ApprovalStatus), "1", "1", "ApprovalModule");
1278             addElementToDataset(result, dataset, new DcmDate(ReviewDate), "1", "2C", "ApprovalModule");
1279             addElementToDataset(result, dataset, new DcmTime(ReviewTime), "1", "2C", "ApprovalModule");
1280             addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule");
1281         }
1282 
1283         // --- GeneralReferenceModule (U) ---
1284         if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
1285         {
1286             if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
1287             if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
1288             addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
1289             if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
1290             if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
1291             if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
1292         }
1293 
1294         // --- SOPCommonModule (M) ---
1295         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule");
1296         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule");
1297         addElementToDataset(result, dataset, new DcmCodeString(SpecificCharacterSet), "1-n", "1C", "SOPCommonModule");
1298         addElementToDataset(result, dataset, new DcmDate(InstanceCreationDate), "1", "3", "SOPCommonModule");
1299         addElementToDataset(result, dataset, new DcmTime(InstanceCreationTime), "1", "3", "SOPCommonModule");
1300         addElementToDataset(result, dataset, new DcmDateTime(InstanceCoercionDateTime), "1", "3", "SOPCommonModule");
1301         addElementToDataset(result, dataset, new DcmUniqueIdentifier(InstanceCreatorUID), "1", "3", "SOPCommonModule");
1302         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
1303         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
1304         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
1305         if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
1306         if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
1307         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
1308         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
1309         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
1310         addElementToDataset(result, dataset, new DcmCodeString(SOPInstanceStatus), "1", "3", "SOPCommonModule");
1311         addElementToDataset(result, dataset, new DcmDateTime(SOPAuthorizationDateTime), "1", "3", "SOPCommonModule");
1312         addElementToDataset(result, dataset, new DcmLongText(SOPAuthorizationComment), "1", "3", "SOPCommonModule");
1313         addElementToDataset(result, dataset, new DcmLongString(AuthorizationEquipmentCertificationNumber), "1", "3", "SOPCommonModule");
1314         if (result.good()) result = MACParametersSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
1315         if (result.good()) result = DigitalSignaturesSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
1316         if (result.good()) result = EncryptedAttributesSequence.write(dataset, "1-n" ,"1C", "SOPCommonModule");
1317         if (result.good()) result = OriginalAttributesSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
1318         if (result.good()) result = HL7StructuredDocumentReferenceSequence.write(dataset, "1-n" ,"1C", "SOPCommonModule");
1319         addElementToDataset(result, dataset, new DcmCodeString(LongitudinalTemporalInformationModified), "1", "3", "SOPCommonModule");
1320         addElementToDataset(result, dataset, new DcmCodeString(QueryRetrieveView), "1", "1C", "SOPCommonModule");
1321         if (result.good()) result = ConversionSourceAttributesSequence.write(dataset, "1-n" ,"1C", "SOPCommonModule");
1322         addElementToDataset(result, dataset, new DcmCodeString(ContentQualification), "1", "3", "SOPCommonModule");
1323         if (result.good()) result = PrivateDataElementCharacteristicsSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
1324 
1325         // --- CommonInstanceReferenceModule (U) ---
1326         if (isCommonInstanceReferenceModulePresent(OFFalse /*complete*/))
1327         {
1328             if (result.good()) result = ReferencedSeriesSequence.write(dataset, "1-n" ,"1C", "CommonInstanceReferenceModule");
1329             if (result.good()) result = StudiesContainingOtherReferencedInstancesSequence.write(dataset, "1-n" ,"1C", "CommonInstanceReferenceModule");
1330         }
1331     } else
1332         result = RT_EC_InvalidObject;
1333     return result;
1334 }
1335 
1336 
isClinicalTrialSubjectModulePresent(const OFBool complete)1337 OFBool DRTStructureSetIOD::isClinicalTrialSubjectModulePresent(const OFBool complete)
1338 {
1339     if (complete)
1340     {
1341         /* check whether all mandatory attributes are present */
1342         return !ClinicalTrialSponsorName.isEmpty() &&
1343                !ClinicalTrialProtocolID.isEmpty();
1344     } else {
1345         /* check whether at least one attribute is present */
1346         return !ClinicalTrialSponsorName.isEmpty() ||
1347                !ClinicalTrialProtocolID.isEmpty() ||
1348                !ClinicalTrialProtocolName.isEmpty() ||
1349                !ClinicalTrialSiteID.isEmpty() ||
1350                !ClinicalTrialSiteName.isEmpty() ||
1351                !ClinicalTrialSubjectID.isEmpty() ||
1352                !ClinicalTrialSubjectReadingID.isEmpty() ||
1353                !ClinicalTrialProtocolEthicsCommitteeName.isEmpty() ||
1354                !ClinicalTrialProtocolEthicsCommitteeApprovalNumber.isEmpty();
1355     }
1356 }
1357 
1358 
isPatientStudyModulePresent(const OFBool)1359 OFBool DRTStructureSetIOD::isPatientStudyModulePresent(const OFBool /*complete*/)
1360 {
1361     /* check whether at least one attribute is present */
1362     return !AdmittingDiagnosesDescription.isEmpty() ||
1363            !AdmittingDiagnosesCodeSequence.isEmpty() ||
1364            !PatientAge.isEmpty() ||
1365            !PatientSize.isEmpty() ||
1366            !PatientWeight.isEmpty() ||
1367            !PatientBodyMassIndex.isEmpty() ||
1368            !MeasuredAPDimension.isEmpty() ||
1369            !MeasuredLateralDimension.isEmpty() ||
1370            !PatientSizeCodeSequence.isEmpty() ||
1371            !MedicalAlerts.isEmpty() ||
1372            !Allergies.isEmpty() ||
1373            !SmokingStatus.isEmpty() ||
1374            !PregnancyStatus.isEmpty() ||
1375            !LastMenstrualDate.isEmpty() ||
1376            !PatientState.isEmpty() ||
1377            !Occupation.isEmpty() ||
1378            !AdditionalPatientHistory.isEmpty() ||
1379            !AdmissionID.isEmpty() ||
1380            !IssuerOfAdmissionIDSequence.isEmpty() ||
1381            !ServiceEpisodeID.isEmpty() ||
1382            !IssuerOfServiceEpisodeIDSequence.isEmpty() ||
1383            !ServiceEpisodeDescription.isEmpty() ||
1384            !PatientSexNeutered.isEmpty();
1385 }
1386 
1387 
isClinicalTrialStudyModulePresent(const OFBool)1388 OFBool DRTStructureSetIOD::isClinicalTrialStudyModulePresent(const OFBool /*complete*/)
1389 {
1390     /* check whether at least one attribute is present */
1391     return !ClinicalTrialTimePointID.isEmpty() ||
1392            !ClinicalTrialTimePointDescription.isEmpty() ||
1393            !LongitudinalTemporalOffsetFromEvent.isEmpty() ||
1394            !LongitudinalTemporalEventType.isEmpty() ||
1395            !ConsentForClinicalTrialUseSequence.isEmpty();
1396 }
1397 
1398 
isClinicalTrialSeriesModulePresent(const OFBool)1399 OFBool DRTStructureSetIOD::isClinicalTrialSeriesModulePresent(const OFBool /*complete*/)
1400 {
1401     /* check whether at least one attribute is present */
1402     return !ClinicalTrialCoordinatingCenterName.isEmpty() ||
1403            !ClinicalTrialSeriesID.isEmpty() ||
1404            !ClinicalTrialSeriesDescription.isEmpty();
1405 }
1406 
1407 
isFrameOfReferenceModulePresent(const OFBool complete)1408 OFBool DRTStructureSetIOD::isFrameOfReferenceModulePresent(const OFBool complete)
1409 {
1410     if (complete)
1411     {
1412         /* check whether all mandatory attributes are present */
1413         return !FrameOfReferenceUID.isEmpty();
1414     } else {
1415         /* check whether at least one attribute is present */
1416         return !FrameOfReferenceUID.isEmpty() ||
1417                !PositionReferenceIndicator.isEmpty();
1418     }
1419 }
1420 
1421 
isApprovalModulePresent(const OFBool complete)1422 OFBool DRTStructureSetIOD::isApprovalModulePresent(const OFBool complete)
1423 {
1424     if (complete)
1425     {
1426         /* check whether all mandatory attributes are present */
1427         return !ApprovalStatus.isEmpty();
1428     } else {
1429         /* check whether at least one attribute is present */
1430         return !ApprovalStatus.isEmpty() ||
1431                !ReviewDate.isEmpty() ||
1432                !ReviewTime.isEmpty() ||
1433                !ReviewerName.isEmpty();
1434     }
1435 }
1436 
1437 
isGeneralReferenceModulePresent(const OFBool)1438 OFBool DRTStructureSetIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
1439 {
1440     /* check whether at least one attribute is present */
1441     return !ReferencedImageSequence.isEmpty() ||
1442            !ReferencedInstanceSequence.isEmpty() ||
1443            !DerivationDescription.isEmpty() ||
1444            !DerivationCodeSequence.isEmpty() ||
1445            !SourceImageSequence.isEmpty() ||
1446            !SourceInstanceSequence.isEmpty();
1447 }
1448 
1449 
isCommonInstanceReferenceModulePresent(const OFBool)1450 OFBool DRTStructureSetIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/)
1451 {
1452     /* check whether at least one attribute is present */
1453     return !ReferencedSeriesSequence.isEmpty() ||
1454            !StudiesContainingOtherReferencedInstancesSequence.isEmpty();
1455 }
1456 
1457 
getAccessionNumber(OFString & value,const signed long pos) const1458 OFCondition DRTStructureSetIOD::getAccessionNumber(OFString &value, const signed long pos) const
1459 {
1460     return getStringValueFromElement(AccessionNumber, value, pos);
1461 }
1462 
1463 
getAdditionalPatientHistory(OFString & value,const signed long pos) const1464 OFCondition DRTStructureSetIOD::getAdditionalPatientHistory(OFString &value, const signed long pos) const
1465 {
1466     return getStringValueFromElement(AdditionalPatientHistory, value, pos);
1467 }
1468 
1469 
getAdmissionID(OFString & value,const signed long pos) const1470 OFCondition DRTStructureSetIOD::getAdmissionID(OFString &value, const signed long pos) const
1471 {
1472     return getStringValueFromElement(AdmissionID, value, pos);
1473 }
1474 
1475 
getAdmittingDiagnosesDescription(OFString & value,const signed long pos) const1476 OFCondition DRTStructureSetIOD::getAdmittingDiagnosesDescription(OFString &value, const signed long pos) const
1477 {
1478     return getStringValueFromElement(AdmittingDiagnosesDescription, value, pos);
1479 }
1480 
1481 
getAllergies(OFString & value,const signed long pos) const1482 OFCondition DRTStructureSetIOD::getAllergies(OFString &value, const signed long pos) const
1483 {
1484     return getStringValueFromElement(Allergies, value, pos);
1485 }
1486 
1487 
getApprovalStatus(OFString & value,const signed long pos) const1488 OFCondition DRTStructureSetIOD::getApprovalStatus(OFString &value, const signed long pos) const
1489 {
1490     return getStringValueFromElement(ApprovalStatus, value, pos);
1491 }
1492 
1493 
getAuthorizationEquipmentCertificationNumber(OFString & value,const signed long pos) const1494 OFCondition DRTStructureSetIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const
1495 {
1496     return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos);
1497 }
1498 
1499 
getClinicalTrialCoordinatingCenterName(OFString & value,const signed long pos) const1500 OFCondition DRTStructureSetIOD::getClinicalTrialCoordinatingCenterName(OFString &value, const signed long pos) const
1501 {
1502     return getStringValueFromElement(ClinicalTrialCoordinatingCenterName, value, pos);
1503 }
1504 
1505 
getClinicalTrialProtocolEthicsCommitteeApprovalNumber(OFString & value,const signed long pos) const1506 OFCondition DRTStructureSetIOD::getClinicalTrialProtocolEthicsCommitteeApprovalNumber(OFString &value, const signed long pos) const
1507 {
1508     return getStringValueFromElement(ClinicalTrialProtocolEthicsCommitteeApprovalNumber, value, pos);
1509 }
1510 
1511 
getClinicalTrialProtocolEthicsCommitteeName(OFString & value,const signed long pos) const1512 OFCondition DRTStructureSetIOD::getClinicalTrialProtocolEthicsCommitteeName(OFString &value, const signed long pos) const
1513 {
1514     return getStringValueFromElement(ClinicalTrialProtocolEthicsCommitteeName, value, pos);
1515 }
1516 
1517 
getClinicalTrialProtocolID(OFString & value,const signed long pos) const1518 OFCondition DRTStructureSetIOD::getClinicalTrialProtocolID(OFString &value, const signed long pos) const
1519 {
1520     return getStringValueFromElement(ClinicalTrialProtocolID, value, pos);
1521 }
1522 
1523 
getClinicalTrialProtocolName(OFString & value,const signed long pos) const1524 OFCondition DRTStructureSetIOD::getClinicalTrialProtocolName(OFString &value, const signed long pos) const
1525 {
1526     return getStringValueFromElement(ClinicalTrialProtocolName, value, pos);
1527 }
1528 
1529 
getClinicalTrialSeriesDescription(OFString & value,const signed long pos) const1530 OFCondition DRTStructureSetIOD::getClinicalTrialSeriesDescription(OFString &value, const signed long pos) const
1531 {
1532     return getStringValueFromElement(ClinicalTrialSeriesDescription, value, pos);
1533 }
1534 
1535 
getClinicalTrialSeriesID(OFString & value,const signed long pos) const1536 OFCondition DRTStructureSetIOD::getClinicalTrialSeriesID(OFString &value, const signed long pos) const
1537 {
1538     return getStringValueFromElement(ClinicalTrialSeriesID, value, pos);
1539 }
1540 
1541 
getClinicalTrialSiteID(OFString & value,const signed long pos) const1542 OFCondition DRTStructureSetIOD::getClinicalTrialSiteID(OFString &value, const signed long pos) const
1543 {
1544     return getStringValueFromElement(ClinicalTrialSiteID, value, pos);
1545 }
1546 
1547 
getClinicalTrialSiteName(OFString & value,const signed long pos) const1548 OFCondition DRTStructureSetIOD::getClinicalTrialSiteName(OFString &value, const signed long pos) const
1549 {
1550     return getStringValueFromElement(ClinicalTrialSiteName, value, pos);
1551 }
1552 
1553 
getClinicalTrialSponsorName(OFString & value,const signed long pos) const1554 OFCondition DRTStructureSetIOD::getClinicalTrialSponsorName(OFString &value, const signed long pos) const
1555 {
1556     return getStringValueFromElement(ClinicalTrialSponsorName, value, pos);
1557 }
1558 
1559 
getClinicalTrialSubjectID(OFString & value,const signed long pos) const1560 OFCondition DRTStructureSetIOD::getClinicalTrialSubjectID(OFString &value, const signed long pos) const
1561 {
1562     return getStringValueFromElement(ClinicalTrialSubjectID, value, pos);
1563 }
1564 
1565 
getClinicalTrialSubjectReadingID(OFString & value,const signed long pos) const1566 OFCondition DRTStructureSetIOD::getClinicalTrialSubjectReadingID(OFString &value, const signed long pos) const
1567 {
1568     return getStringValueFromElement(ClinicalTrialSubjectReadingID, value, pos);
1569 }
1570 
1571 
getClinicalTrialTimePointDescription(OFString & value,const signed long pos) const1572 OFCondition DRTStructureSetIOD::getClinicalTrialTimePointDescription(OFString &value, const signed long pos) const
1573 {
1574     return getStringValueFromElement(ClinicalTrialTimePointDescription, value, pos);
1575 }
1576 
1577 
getClinicalTrialTimePointID(OFString & value,const signed long pos) const1578 OFCondition DRTStructureSetIOD::getClinicalTrialTimePointID(OFString &value, const signed long pos) const
1579 {
1580     return getStringValueFromElement(ClinicalTrialTimePointID, value, pos);
1581 }
1582 
1583 
getCommentsOnThePerformedProcedureStep(OFString & value,const signed long pos) const1584 OFCondition DRTStructureSetIOD::getCommentsOnThePerformedProcedureStep(OFString &value, const signed long pos) const
1585 {
1586     return getStringValueFromElement(CommentsOnThePerformedProcedureStep, value, pos);
1587 }
1588 
1589 
getConsultingPhysicianName(OFString & value,const signed long pos) const1590 OFCondition DRTStructureSetIOD::getConsultingPhysicianName(OFString &value, const signed long pos) const
1591 {
1592     return getStringValueFromElement(ConsultingPhysicianName, value, pos);
1593 }
1594 
1595 
getContentQualification(OFString & value,const signed long pos) const1596 OFCondition DRTStructureSetIOD::getContentQualification(OFString &value, const signed long pos) const
1597 {
1598     return getStringValueFromElement(ContentQualification, value, pos);
1599 }
1600 
1601 
getDateOfLastCalibration(OFString & value,const signed long pos) const1602 OFCondition DRTStructureSetIOD::getDateOfLastCalibration(OFString &value, const signed long pos) const
1603 {
1604     return getStringValueFromElement(DateOfLastCalibration, value, pos);
1605 }
1606 
1607 
getDeidentificationMethod(OFString & value,const signed long pos) const1608 OFCondition DRTStructureSetIOD::getDeidentificationMethod(OFString &value, const signed long pos) const
1609 {
1610     return getStringValueFromElement(DeidentificationMethod, value, pos);
1611 }
1612 
1613 
getDerivationDescription(OFString & value,const signed long pos) const1614 OFCondition DRTStructureSetIOD::getDerivationDescription(OFString &value, const signed long pos) const
1615 {
1616     return getStringValueFromElement(DerivationDescription, value, pos);
1617 }
1618 
1619 
getDeviceSerialNumber(OFString & value,const signed long pos) const1620 OFCondition DRTStructureSetIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
1621 {
1622     return getStringValueFromElement(DeviceSerialNumber, value, pos);
1623 }
1624 
1625 
getEthnicGroup(OFString & value,const signed long pos) const1626 OFCondition DRTStructureSetIOD::getEthnicGroup(OFString &value, const signed long pos) const
1627 {
1628     return getStringValueFromElement(EthnicGroup, value, pos);
1629 }
1630 
1631 
getFrameOfReferenceUID(OFString & value,const signed long pos) const1632 OFCondition DRTStructureSetIOD::getFrameOfReferenceUID(OFString &value, const signed long pos) const
1633 {
1634     return getStringValueFromElement(FrameOfReferenceUID, value, pos);
1635 }
1636 
1637 
getGantryID(OFString & value,const signed long pos) const1638 OFCondition DRTStructureSetIOD::getGantryID(OFString &value, const signed long pos) const
1639 {
1640     return getStringValueFromElement(GantryID, value, pos);
1641 }
1642 
1643 
getInstanceCoercionDateTime(OFString & value,const signed long pos) const1644 OFCondition DRTStructureSetIOD::getInstanceCoercionDateTime(OFString &value, const signed long pos) const
1645 {
1646     return getStringValueFromElement(InstanceCoercionDateTime, value, pos);
1647 }
1648 
1649 
getInstanceCreationDate(OFString & value,const signed long pos) const1650 OFCondition DRTStructureSetIOD::getInstanceCreationDate(OFString &value, const signed long pos) const
1651 {
1652     return getStringValueFromElement(InstanceCreationDate, value, pos);
1653 }
1654 
1655 
getInstanceCreationTime(OFString & value,const signed long pos) const1656 OFCondition DRTStructureSetIOD::getInstanceCreationTime(OFString &value, const signed long pos) const
1657 {
1658     return getStringValueFromElement(InstanceCreationTime, value, pos);
1659 }
1660 
1661 
getInstanceCreatorUID(OFString & value,const signed long pos) const1662 OFCondition DRTStructureSetIOD::getInstanceCreatorUID(OFString &value, const signed long pos) const
1663 {
1664     return getStringValueFromElement(InstanceCreatorUID, value, pos);
1665 }
1666 
1667 
getInstanceNumber(OFString & value,const signed long pos) const1668 OFCondition DRTStructureSetIOD::getInstanceNumber(OFString &value, const signed long pos) const
1669 {
1670     return getStringValueFromElement(InstanceNumber, value, pos);
1671 }
1672 
1673 
getInstanceNumber(Sint32 & value,const unsigned long pos) const1674 OFCondition DRTStructureSetIOD::getInstanceNumber(Sint32 &value, const unsigned long pos) const
1675 {
1676     return OFconst_cast(DcmIntegerString &, InstanceNumber).getSint32(value, pos);
1677 }
1678 
1679 
getInstitutionAddress(OFString & value,const signed long pos) const1680 OFCondition DRTStructureSetIOD::getInstitutionAddress(OFString &value, const signed long pos) const
1681 {
1682     return getStringValueFromElement(InstitutionAddress, value, pos);
1683 }
1684 
1685 
getInstitutionName(OFString & value,const signed long pos) const1686 OFCondition DRTStructureSetIOD::getInstitutionName(OFString &value, const signed long pos) const
1687 {
1688     return getStringValueFromElement(InstitutionName, value, pos);
1689 }
1690 
1691 
getInstitutionalDepartmentName(OFString & value,const signed long pos) const1692 OFCondition DRTStructureSetIOD::getInstitutionalDepartmentName(OFString &value, const signed long pos) const
1693 {
1694     return getStringValueFromElement(InstitutionalDepartmentName, value, pos);
1695 }
1696 
1697 
getIssuerOfPatientID(OFString & value,const signed long pos) const1698 OFCondition DRTStructureSetIOD::getIssuerOfPatientID(OFString &value, const signed long pos) const
1699 {
1700     return getStringValueFromElement(IssuerOfPatientID, value, pos);
1701 }
1702 
1703 
getLastMenstrualDate(OFString & value,const signed long pos) const1704 OFCondition DRTStructureSetIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
1705 {
1706     return getStringValueFromElement(LastMenstrualDate, value, pos);
1707 }
1708 
1709 
getLongitudinalTemporalEventType(OFString & value,const signed long pos) const1710 OFCondition DRTStructureSetIOD::getLongitudinalTemporalEventType(OFString &value, const signed long pos) const
1711 {
1712     return getStringValueFromElement(LongitudinalTemporalEventType, value, pos);
1713 }
1714 
1715 
getLongitudinalTemporalInformationModified(OFString & value,const signed long pos) const1716 OFCondition DRTStructureSetIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
1717 {
1718     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
1719 }
1720 
1721 
getLongitudinalTemporalOffsetFromEvent(Float64 & value,const unsigned long pos) const1722 OFCondition DRTStructureSetIOD::getLongitudinalTemporalOffsetFromEvent(Float64 &value, const unsigned long pos) const
1723 {
1724     return OFconst_cast(DcmFloatingPointDouble &, LongitudinalTemporalOffsetFromEvent).getFloat64(value, pos);
1725 }
1726 
1727 
getManufacturer(OFString & value,const signed long pos) const1728 OFCondition DRTStructureSetIOD::getManufacturer(OFString &value, const signed long pos) const
1729 {
1730     return getStringValueFromElement(Manufacturer, value, pos);
1731 }
1732 
1733 
getManufacturerModelName(OFString & value,const signed long pos) const1734 OFCondition DRTStructureSetIOD::getManufacturerModelName(OFString &value, const signed long pos) const
1735 {
1736     return getStringValueFromElement(ManufacturerModelName, value, pos);
1737 }
1738 
1739 
getMeasuredAPDimension(OFString & value,const signed long pos) const1740 OFCondition DRTStructureSetIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
1741 {
1742     return getStringValueFromElement(MeasuredAPDimension, value, pos);
1743 }
1744 
1745 
getMeasuredAPDimension(Float64 & value,const unsigned long pos) const1746 OFCondition DRTStructureSetIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
1747 {
1748     return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
1749 }
1750 
1751 
getMeasuredLateralDimension(OFString & value,const signed long pos) const1752 OFCondition DRTStructureSetIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
1753 {
1754     return getStringValueFromElement(MeasuredLateralDimension, value, pos);
1755 }
1756 
1757 
getMeasuredLateralDimension(Float64 & value,const unsigned long pos) const1758 OFCondition DRTStructureSetIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
1759 {
1760     return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
1761 }
1762 
1763 
getMedicalAlerts(OFString & value,const signed long pos) const1764 OFCondition DRTStructureSetIOD::getMedicalAlerts(OFString &value, const signed long pos) const
1765 {
1766     return getStringValueFromElement(MedicalAlerts, value, pos);
1767 }
1768 
1769 
getModality(OFString & value,const signed long pos) const1770 OFCondition DRTStructureSetIOD::getModality(OFString &value, const signed long pos) const
1771 {
1772     return getStringValueFromElement(Modality, value, pos);
1773 }
1774 
1775 
getNameOfPhysiciansReadingStudy(OFString & value,const signed long pos) const1776 OFCondition DRTStructureSetIOD::getNameOfPhysiciansReadingStudy(OFString &value, const signed long pos) const
1777 {
1778     return getStringValueFromElement(NameOfPhysiciansReadingStudy, value, pos);
1779 }
1780 
1781 
getOccupation(OFString & value,const signed long pos) const1782 OFCondition DRTStructureSetIOD::getOccupation(OFString &value, const signed long pos) const
1783 {
1784     return getStringValueFromElement(Occupation, value, pos);
1785 }
1786 
1787 
getOperatorsName(OFString & value,const signed long pos) const1788 OFCondition DRTStructureSetIOD::getOperatorsName(OFString &value, const signed long pos) const
1789 {
1790     return getStringValueFromElement(OperatorsName, value, pos);
1791 }
1792 
1793 
getOriginalSpecializedSOPClassUID(OFString & value,const signed long pos) const1794 OFCondition DRTStructureSetIOD::getOriginalSpecializedSOPClassUID(OFString &value, const signed long pos) const
1795 {
1796     return getStringValueFromElement(OriginalSpecializedSOPClassUID, value, pos);
1797 }
1798 
1799 
getOtherPatientNames(OFString & value,const signed long pos) const1800 OFCondition DRTStructureSetIOD::getOtherPatientNames(OFString &value, const signed long pos) const
1801 {
1802     return getStringValueFromElement(OtherPatientNames, value, pos);
1803 }
1804 
1805 
getPatientAge(OFString & value,const signed long pos) const1806 OFCondition DRTStructureSetIOD::getPatientAge(OFString &value, const signed long pos) const
1807 {
1808     return getStringValueFromElement(PatientAge, value, pos);
1809 }
1810 
1811 
getPatientAlternativeCalendar(OFString & value,const signed long pos) const1812 OFCondition DRTStructureSetIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
1813 {
1814     return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
1815 }
1816 
1817 
getPatientBirthDate(OFString & value,const signed long pos) const1818 OFCondition DRTStructureSetIOD::getPatientBirthDate(OFString &value, const signed long pos) const
1819 {
1820     return getStringValueFromElement(PatientBirthDate, value, pos);
1821 }
1822 
1823 
getPatientBirthDateInAlternativeCalendar(OFString & value,const signed long pos) const1824 OFCondition DRTStructureSetIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
1825 {
1826     return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
1827 }
1828 
1829 
getPatientBirthTime(OFString & value,const signed long pos) const1830 OFCondition DRTStructureSetIOD::getPatientBirthTime(OFString &value, const signed long pos) const
1831 {
1832     return getStringValueFromElement(PatientBirthTime, value, pos);
1833 }
1834 
1835 
getPatientBodyMassIndex(OFString & value,const signed long pos) const1836 OFCondition DRTStructureSetIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
1837 {
1838     return getStringValueFromElement(PatientBodyMassIndex, value, pos);
1839 }
1840 
1841 
getPatientBodyMassIndex(Float64 & value,const unsigned long pos) const1842 OFCondition DRTStructureSetIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
1843 {
1844     return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
1845 }
1846 
1847 
getPatientBreedDescription(OFString & value,const signed long pos) const1848 OFCondition DRTStructureSetIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
1849 {
1850     return getStringValueFromElement(PatientBreedDescription, value, pos);
1851 }
1852 
1853 
getPatientComments(OFString & value,const signed long pos) const1854 OFCondition DRTStructureSetIOD::getPatientComments(OFString &value, const signed long pos) const
1855 {
1856     return getStringValueFromElement(PatientComments, value, pos);
1857 }
1858 
1859 
getPatientDeathDateInAlternativeCalendar(OFString & value,const signed long pos) const1860 OFCondition DRTStructureSetIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
1861 {
1862     return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
1863 }
1864 
1865 
getPatientID(OFString & value,const signed long pos) const1866 OFCondition DRTStructureSetIOD::getPatientID(OFString &value, const signed long pos) const
1867 {
1868     return getStringValueFromElement(PatientID, value, pos);
1869 }
1870 
1871 
getPatientIdentityRemoved(OFString & value,const signed long pos) const1872 OFCondition DRTStructureSetIOD::getPatientIdentityRemoved(OFString &value, const signed long pos) const
1873 {
1874     return getStringValueFromElement(PatientIdentityRemoved, value, pos);
1875 }
1876 
1877 
getPatientName(OFString & value,const signed long pos) const1878 OFCondition DRTStructureSetIOD::getPatientName(OFString &value, const signed long pos) const
1879 {
1880     return getStringValueFromElement(PatientName, value, pos);
1881 }
1882 
1883 
getPatientSex(OFString & value,const signed long pos) const1884 OFCondition DRTStructureSetIOD::getPatientSex(OFString &value, const signed long pos) const
1885 {
1886     return getStringValueFromElement(PatientSex, value, pos);
1887 }
1888 
1889 
getPatientSexNeutered(OFString & value,const signed long pos) const1890 OFCondition DRTStructureSetIOD::getPatientSexNeutered(OFString &value, const signed long pos) const
1891 {
1892     return getStringValueFromElement(PatientSexNeutered, value, pos);
1893 }
1894 
1895 
getPatientSize(OFString & value,const signed long pos) const1896 OFCondition DRTStructureSetIOD::getPatientSize(OFString &value, const signed long pos) const
1897 {
1898     return getStringValueFromElement(PatientSize, value, pos);
1899 }
1900 
1901 
getPatientSize(Float64 & value,const unsigned long pos) const1902 OFCondition DRTStructureSetIOD::getPatientSize(Float64 &value, const unsigned long pos) const
1903 {
1904     return OFconst_cast(DcmDecimalString &, PatientSize).getFloat64(value, pos);
1905 }
1906 
1907 
getPatientSpeciesDescription(OFString & value,const signed long pos) const1908 OFCondition DRTStructureSetIOD::getPatientSpeciesDescription(OFString &value, const signed long pos) const
1909 {
1910     return getStringValueFromElement(PatientSpeciesDescription, value, pos);
1911 }
1912 
1913 
getPatientState(OFString & value,const signed long pos) const1914 OFCondition DRTStructureSetIOD::getPatientState(OFString &value, const signed long pos) const
1915 {
1916     return getStringValueFromElement(PatientState, value, pos);
1917 }
1918 
1919 
getPatientWeight(OFString & value,const signed long pos) const1920 OFCondition DRTStructureSetIOD::getPatientWeight(OFString &value, const signed long pos) const
1921 {
1922     return getStringValueFromElement(PatientWeight, value, pos);
1923 }
1924 
1925 
getPatientWeight(Float64 & value,const unsigned long pos) const1926 OFCondition DRTStructureSetIOD::getPatientWeight(Float64 &value, const unsigned long pos) const
1927 {
1928     return OFconst_cast(DcmDecimalString &, PatientWeight).getFloat64(value, pos);
1929 }
1930 
1931 
getPerformedProcedureStepDescription(OFString & value,const signed long pos) const1932 OFCondition DRTStructureSetIOD::getPerformedProcedureStepDescription(OFString &value, const signed long pos) const
1933 {
1934     return getStringValueFromElement(PerformedProcedureStepDescription, value, pos);
1935 }
1936 
1937 
getPerformedProcedureStepEndDate(OFString & value,const signed long pos) const1938 OFCondition DRTStructureSetIOD::getPerformedProcedureStepEndDate(OFString &value, const signed long pos) const
1939 {
1940     return getStringValueFromElement(PerformedProcedureStepEndDate, value, pos);
1941 }
1942 
1943 
getPerformedProcedureStepEndTime(OFString & value,const signed long pos) const1944 OFCondition DRTStructureSetIOD::getPerformedProcedureStepEndTime(OFString &value, const signed long pos) const
1945 {
1946     return getStringValueFromElement(PerformedProcedureStepEndTime, value, pos);
1947 }
1948 
1949 
getPerformedProcedureStepID(OFString & value,const signed long pos) const1950 OFCondition DRTStructureSetIOD::getPerformedProcedureStepID(OFString &value, const signed long pos) const
1951 {
1952     return getStringValueFromElement(PerformedProcedureStepID, value, pos);
1953 }
1954 
1955 
getPerformedProcedureStepStartDate(OFString & value,const signed long pos) const1956 OFCondition DRTStructureSetIOD::getPerformedProcedureStepStartDate(OFString &value, const signed long pos) const
1957 {
1958     return getStringValueFromElement(PerformedProcedureStepStartDate, value, pos);
1959 }
1960 
1961 
getPerformedProcedureStepStartTime(OFString & value,const signed long pos) const1962 OFCondition DRTStructureSetIOD::getPerformedProcedureStepStartTime(OFString &value, const signed long pos) const
1963 {
1964     return getStringValueFromElement(PerformedProcedureStepStartTime, value, pos);
1965 }
1966 
1967 
getPhysiciansOfRecord(OFString & value,const signed long pos) const1968 OFCondition DRTStructureSetIOD::getPhysiciansOfRecord(OFString &value, const signed long pos) const
1969 {
1970     return getStringValueFromElement(PhysiciansOfRecord, value, pos);
1971 }
1972 
1973 
getPixelPaddingValue(Uint16 & value,const unsigned long pos) const1974 OFCondition DRTStructureSetIOD::getPixelPaddingValue(Uint16 &value, const unsigned long pos) const
1975 {
1976     return OFconst_cast(DcmUnsignedShort &, PixelPaddingValue).getUint16(value, pos);
1977 }
1978 
1979 
getPositionReferenceIndicator(OFString & value,const signed long pos) const1980 OFCondition DRTStructureSetIOD::getPositionReferenceIndicator(OFString &value, const signed long pos) const
1981 {
1982     return getStringValueFromElement(PositionReferenceIndicator, value, pos);
1983 }
1984 
1985 
getPregnancyStatus(Uint16 & value,const unsigned long pos) const1986 OFCondition DRTStructureSetIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
1987 {
1988     return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
1989 }
1990 
1991 
getQualityControlSubject(OFString & value,const signed long pos) const1992 OFCondition DRTStructureSetIOD::getQualityControlSubject(OFString &value, const signed long pos) const
1993 {
1994     return getStringValueFromElement(QualityControlSubject, value, pos);
1995 }
1996 
1997 
getQueryRetrieveView(OFString & value,const signed long pos) const1998 OFCondition DRTStructureSetIOD::getQueryRetrieveView(OFString &value, const signed long pos) const
1999 {
2000     return getStringValueFromElement(QueryRetrieveView, value, pos);
2001 }
2002 
2003 
getReferringPhysicianName(OFString & value,const signed long pos) const2004 OFCondition DRTStructureSetIOD::getReferringPhysicianName(OFString &value, const signed long pos) const
2005 {
2006     return getStringValueFromElement(ReferringPhysicianName, value, pos);
2007 }
2008 
2009 
getRelatedGeneralSOPClassUID(OFString & value,const signed long pos) const2010 OFCondition DRTStructureSetIOD::getRelatedGeneralSOPClassUID(OFString &value, const signed long pos) const
2011 {
2012     return getStringValueFromElement(RelatedGeneralSOPClassUID, value, pos);
2013 }
2014 
2015 
getResponsibleOrganization(OFString & value,const signed long pos) const2016 OFCondition DRTStructureSetIOD::getResponsibleOrganization(OFString &value, const signed long pos) const
2017 {
2018     return getStringValueFromElement(ResponsibleOrganization, value, pos);
2019 }
2020 
2021 
getResponsiblePerson(OFString & value,const signed long pos) const2022 OFCondition DRTStructureSetIOD::getResponsiblePerson(OFString &value, const signed long pos) const
2023 {
2024     return getStringValueFromElement(ResponsiblePerson, value, pos);
2025 }
2026 
2027 
getResponsiblePersonRole(OFString & value,const signed long pos) const2028 OFCondition DRTStructureSetIOD::getResponsiblePersonRole(OFString &value, const signed long pos) const
2029 {
2030     return getStringValueFromElement(ResponsiblePersonRole, value, pos);
2031 }
2032 
2033 
getReviewDate(OFString & value,const signed long pos) const2034 OFCondition DRTStructureSetIOD::getReviewDate(OFString &value, const signed long pos) const
2035 {
2036     return getStringValueFromElement(ReviewDate, value, pos);
2037 }
2038 
2039 
getReviewTime(OFString & value,const signed long pos) const2040 OFCondition DRTStructureSetIOD::getReviewTime(OFString &value, const signed long pos) const
2041 {
2042     return getStringValueFromElement(ReviewTime, value, pos);
2043 }
2044 
2045 
getReviewerName(OFString & value,const signed long pos) const2046 OFCondition DRTStructureSetIOD::getReviewerName(OFString &value, const signed long pos) const
2047 {
2048     return getStringValueFromElement(ReviewerName, value, pos);
2049 }
2050 
2051 
getSOPAuthorizationComment(OFString & value,const signed long pos) const2052 OFCondition DRTStructureSetIOD::getSOPAuthorizationComment(OFString &value, const signed long pos) const
2053 {
2054     return getStringValueFromElement(SOPAuthorizationComment, value, pos);
2055 }
2056 
2057 
getSOPAuthorizationDateTime(OFString & value,const signed long pos) const2058 OFCondition DRTStructureSetIOD::getSOPAuthorizationDateTime(OFString &value, const signed long pos) const
2059 {
2060     return getStringValueFromElement(SOPAuthorizationDateTime, value, pos);
2061 }
2062 
2063 
getSOPClassUID(OFString & value,const signed long pos) const2064 OFCondition DRTStructureSetIOD::getSOPClassUID(OFString &value, const signed long pos) const
2065 {
2066     return getStringValueFromElement(SOPClassUID, value, pos);
2067 }
2068 
2069 
getSOPInstanceStatus(OFString & value,const signed long pos) const2070 OFCondition DRTStructureSetIOD::getSOPInstanceStatus(OFString &value, const signed long pos) const
2071 {
2072     return getStringValueFromElement(SOPInstanceStatus, value, pos);
2073 }
2074 
2075 
getSOPInstanceUID(OFString & value,const signed long pos) const2076 OFCondition DRTStructureSetIOD::getSOPInstanceUID(OFString &value, const signed long pos) const
2077 {
2078     return getStringValueFromElement(SOPInstanceUID, value, pos);
2079 }
2080 
2081 
getSeriesDate(OFString & value,const signed long pos) const2082 OFCondition DRTStructureSetIOD::getSeriesDate(OFString &value, const signed long pos) const
2083 {
2084     return getStringValueFromElement(SeriesDate, value, pos);
2085 }
2086 
2087 
getSeriesDescription(OFString & value,const signed long pos) const2088 OFCondition DRTStructureSetIOD::getSeriesDescription(OFString &value, const signed long pos) const
2089 {
2090     return getStringValueFromElement(SeriesDescription, value, pos);
2091 }
2092 
2093 
getSeriesInstanceUID(OFString & value,const signed long pos) const2094 OFCondition DRTStructureSetIOD::getSeriesInstanceUID(OFString &value, const signed long pos) const
2095 {
2096     return getStringValueFromElement(SeriesInstanceUID, value, pos);
2097 }
2098 
2099 
getSeriesNumber(OFString & value,const signed long pos) const2100 OFCondition DRTStructureSetIOD::getSeriesNumber(OFString &value, const signed long pos) const
2101 {
2102     return getStringValueFromElement(SeriesNumber, value, pos);
2103 }
2104 
2105 
getSeriesNumber(Sint32 & value,const unsigned long pos) const2106 OFCondition DRTStructureSetIOD::getSeriesNumber(Sint32 &value, const unsigned long pos) const
2107 {
2108     return OFconst_cast(DcmIntegerString &, SeriesNumber).getSint32(value, pos);
2109 }
2110 
2111 
getSeriesTime(OFString & value,const signed long pos) const2112 OFCondition DRTStructureSetIOD::getSeriesTime(OFString &value, const signed long pos) const
2113 {
2114     return getStringValueFromElement(SeriesTime, value, pos);
2115 }
2116 
2117 
getServiceEpisodeDescription(OFString & value,const signed long pos) const2118 OFCondition DRTStructureSetIOD::getServiceEpisodeDescription(OFString &value, const signed long pos) const
2119 {
2120     return getStringValueFromElement(ServiceEpisodeDescription, value, pos);
2121 }
2122 
2123 
getServiceEpisodeID(OFString & value,const signed long pos) const2124 OFCondition DRTStructureSetIOD::getServiceEpisodeID(OFString &value, const signed long pos) const
2125 {
2126     return getStringValueFromElement(ServiceEpisodeID, value, pos);
2127 }
2128 
2129 
getSmokingStatus(OFString & value,const signed long pos) const2130 OFCondition DRTStructureSetIOD::getSmokingStatus(OFString &value, const signed long pos) const
2131 {
2132     return getStringValueFromElement(SmokingStatus, value, pos);
2133 }
2134 
2135 
getSoftwareVersions(OFString & value,const signed long pos) const2136 OFCondition DRTStructureSetIOD::getSoftwareVersions(OFString &value, const signed long pos) const
2137 {
2138     return getStringValueFromElement(SoftwareVersions, value, pos);
2139 }
2140 
2141 
getSpatialResolution(OFString & value,const signed long pos) const2142 OFCondition DRTStructureSetIOD::getSpatialResolution(OFString &value, const signed long pos) const
2143 {
2144     return getStringValueFromElement(SpatialResolution, value, pos);
2145 }
2146 
2147 
getSpatialResolution(Float64 & value,const unsigned long pos) const2148 OFCondition DRTStructureSetIOD::getSpatialResolution(Float64 &value, const unsigned long pos) const
2149 {
2150     return OFconst_cast(DcmDecimalString &, SpatialResolution).getFloat64(value, pos);
2151 }
2152 
2153 
getSpecificCharacterSet(OFString & value,const signed long pos) const2154 OFCondition DRTStructureSetIOD::getSpecificCharacterSet(OFString &value, const signed long pos) const
2155 {
2156     return getStringValueFromElement(SpecificCharacterSet, value, pos);
2157 }
2158 
2159 
getStationName(OFString & value,const signed long pos) const2160 OFCondition DRTStructureSetIOD::getStationName(OFString &value, const signed long pos) const
2161 {
2162     return getStringValueFromElement(StationName, value, pos);
2163 }
2164 
2165 
getStrainAdditionalInformation(OFString & value,const signed long pos) const2166 OFCondition DRTStructureSetIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
2167 {
2168     return getStringValueFromElement(StrainAdditionalInformation, value, pos);
2169 }
2170 
2171 
getStrainDescription(OFString & value,const signed long pos) const2172 OFCondition DRTStructureSetIOD::getStrainDescription(OFString &value, const signed long pos) const
2173 {
2174     return getStringValueFromElement(StrainDescription, value, pos);
2175 }
2176 
2177 
getStrainNomenclature(OFString & value,const signed long pos) const2178 OFCondition DRTStructureSetIOD::getStrainNomenclature(OFString &value, const signed long pos) const
2179 {
2180     return getStringValueFromElement(StrainNomenclature, value, pos);
2181 }
2182 
2183 
getStructureSetDate(OFString & value,const signed long pos) const2184 OFCondition DRTStructureSetIOD::getStructureSetDate(OFString &value, const signed long pos) const
2185 {
2186     return getStringValueFromElement(StructureSetDate, value, pos);
2187 }
2188 
2189 
getStructureSetDescription(OFString & value,const signed long pos) const2190 OFCondition DRTStructureSetIOD::getStructureSetDescription(OFString &value, const signed long pos) const
2191 {
2192     return getStringValueFromElement(StructureSetDescription, value, pos);
2193 }
2194 
2195 
getStructureSetLabel(OFString & value,const signed long pos) const2196 OFCondition DRTStructureSetIOD::getStructureSetLabel(OFString &value, const signed long pos) const
2197 {
2198     return getStringValueFromElement(StructureSetLabel, value, pos);
2199 }
2200 
2201 
getStructureSetName(OFString & value,const signed long pos) const2202 OFCondition DRTStructureSetIOD::getStructureSetName(OFString &value, const signed long pos) const
2203 {
2204     return getStringValueFromElement(StructureSetName, value, pos);
2205 }
2206 
2207 
getStructureSetTime(OFString & value,const signed long pos) const2208 OFCondition DRTStructureSetIOD::getStructureSetTime(OFString &value, const signed long pos) const
2209 {
2210     return getStringValueFromElement(StructureSetTime, value, pos);
2211 }
2212 
2213 
getStudyDate(OFString & value,const signed long pos) const2214 OFCondition DRTStructureSetIOD::getStudyDate(OFString &value, const signed long pos) const
2215 {
2216     return getStringValueFromElement(StudyDate, value, pos);
2217 }
2218 
2219 
getStudyDescription(OFString & value,const signed long pos) const2220 OFCondition DRTStructureSetIOD::getStudyDescription(OFString &value, const signed long pos) const
2221 {
2222     return getStringValueFromElement(StudyDescription, value, pos);
2223 }
2224 
2225 
getStudyID(OFString & value,const signed long pos) const2226 OFCondition DRTStructureSetIOD::getStudyID(OFString &value, const signed long pos) const
2227 {
2228     return getStringValueFromElement(StudyID, value, pos);
2229 }
2230 
2231 
getStudyInstanceUID(OFString & value,const signed long pos) const2232 OFCondition DRTStructureSetIOD::getStudyInstanceUID(OFString &value, const signed long pos) const
2233 {
2234     return getStringValueFromElement(StudyInstanceUID, value, pos);
2235 }
2236 
2237 
getStudyTime(OFString & value,const signed long pos) const2238 OFCondition DRTStructureSetIOD::getStudyTime(OFString &value, const signed long pos) const
2239 {
2240     return getStringValueFromElement(StudyTime, value, pos);
2241 }
2242 
2243 
getTimeOfLastCalibration(OFString & value,const signed long pos) const2244 OFCondition DRTStructureSetIOD::getTimeOfLastCalibration(OFString &value, const signed long pos) const
2245 {
2246     return getStringValueFromElement(TimeOfLastCalibration, value, pos);
2247 }
2248 
2249 
getTimezoneOffsetFromUTC(OFString & value,const signed long pos) const2250 OFCondition DRTStructureSetIOD::getTimezoneOffsetFromUTC(OFString &value, const signed long pos) const
2251 {
2252     return getStringValueFromElement(TimezoneOffsetFromUTC, value, pos);
2253 }
2254 
2255 
setAccessionNumber(const OFString & value,const OFBool check)2256 OFCondition DRTStructureSetIOD::setAccessionNumber(const OFString &value, const OFBool check)
2257 {
2258     OFCondition result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
2259     if (result.good())
2260         result = AccessionNumber.putOFStringArray(value);
2261     return result;
2262 }
2263 
2264 
setAdditionalPatientHistory(const OFString & value,const OFBool check)2265 OFCondition DRTStructureSetIOD::setAdditionalPatientHistory(const OFString &value, const OFBool check)
2266 {
2267     OFCondition result = (check) ? DcmLongText::checkStringValue(value) : EC_Normal;
2268     if (result.good())
2269         result = AdditionalPatientHistory.putOFStringArray(value);
2270     return result;
2271 }
2272 
2273 
setAdmissionID(const OFString & value,const OFBool check)2274 OFCondition DRTStructureSetIOD::setAdmissionID(const OFString &value, const OFBool check)
2275 {
2276     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2277     if (result.good())
2278         result = AdmissionID.putOFStringArray(value);
2279     return result;
2280 }
2281 
2282 
setAdmittingDiagnosesDescription(const OFString & value,const OFBool check)2283 OFCondition DRTStructureSetIOD::setAdmittingDiagnosesDescription(const OFString &value, const OFBool check)
2284 {
2285     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
2286     if (result.good())
2287         result = AdmittingDiagnosesDescription.putOFStringArray(value);
2288     return result;
2289 }
2290 
2291 
setAllergies(const OFString & value,const OFBool check)2292 OFCondition DRTStructureSetIOD::setAllergies(const OFString &value, const OFBool check)
2293 {
2294     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
2295     if (result.good())
2296         result = Allergies.putOFStringArray(value);
2297     return result;
2298 }
2299 
2300 
setApprovalStatus(const OFString & value,const OFBool check)2301 OFCondition DRTStructureSetIOD::setApprovalStatus(const OFString &value, const OFBool check)
2302 {
2303     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
2304     if (result.good())
2305         result = ApprovalStatus.putOFStringArray(value);
2306     return result;
2307 }
2308 
2309 
setAuthorizationEquipmentCertificationNumber(const OFString & value,const OFBool check)2310 OFCondition DRTStructureSetIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check)
2311 {
2312     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2313     if (result.good())
2314         result = AuthorizationEquipmentCertificationNumber.putOFStringArray(value);
2315     return result;
2316 }
2317 
2318 
setClinicalTrialCoordinatingCenterName(const OFString & value,const OFBool check)2319 OFCondition DRTStructureSetIOD::setClinicalTrialCoordinatingCenterName(const OFString &value, const OFBool check)
2320 {
2321     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2322     if (result.good())
2323         result = ClinicalTrialCoordinatingCenterName.putOFStringArray(value);
2324     return result;
2325 }
2326 
2327 
setClinicalTrialProtocolEthicsCommitteeApprovalNumber(const OFString & value,const OFBool check)2328 OFCondition DRTStructureSetIOD::setClinicalTrialProtocolEthicsCommitteeApprovalNumber(const OFString &value, const OFBool check)
2329 {
2330     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2331     if (result.good())
2332         result = ClinicalTrialProtocolEthicsCommitteeApprovalNumber.putOFStringArray(value);
2333     return result;
2334 }
2335 
2336 
setClinicalTrialProtocolEthicsCommitteeName(const OFString & value,const OFBool check)2337 OFCondition DRTStructureSetIOD::setClinicalTrialProtocolEthicsCommitteeName(const OFString &value, const OFBool check)
2338 {
2339     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2340     if (result.good())
2341         result = ClinicalTrialProtocolEthicsCommitteeName.putOFStringArray(value);
2342     return result;
2343 }
2344 
2345 
setClinicalTrialProtocolID(const OFString & value,const OFBool check)2346 OFCondition DRTStructureSetIOD::setClinicalTrialProtocolID(const OFString &value, const OFBool check)
2347 {
2348     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2349     if (result.good())
2350         result = ClinicalTrialProtocolID.putOFStringArray(value);
2351     return result;
2352 }
2353 
2354 
setClinicalTrialProtocolName(const OFString & value,const OFBool check)2355 OFCondition DRTStructureSetIOD::setClinicalTrialProtocolName(const OFString &value, const OFBool check)
2356 {
2357     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2358     if (result.good())
2359         result = ClinicalTrialProtocolName.putOFStringArray(value);
2360     return result;
2361 }
2362 
2363 
setClinicalTrialSeriesDescription(const OFString & value,const OFBool check)2364 OFCondition DRTStructureSetIOD::setClinicalTrialSeriesDescription(const OFString &value, const OFBool check)
2365 {
2366     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2367     if (result.good())
2368         result = ClinicalTrialSeriesDescription.putOFStringArray(value);
2369     return result;
2370 }
2371 
2372 
setClinicalTrialSeriesID(const OFString & value,const OFBool check)2373 OFCondition DRTStructureSetIOD::setClinicalTrialSeriesID(const OFString &value, const OFBool check)
2374 {
2375     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2376     if (result.good())
2377         result = ClinicalTrialSeriesID.putOFStringArray(value);
2378     return result;
2379 }
2380 
2381 
setClinicalTrialSiteID(const OFString & value,const OFBool check)2382 OFCondition DRTStructureSetIOD::setClinicalTrialSiteID(const OFString &value, const OFBool check)
2383 {
2384     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2385     if (result.good())
2386         result = ClinicalTrialSiteID.putOFStringArray(value);
2387     return result;
2388 }
2389 
2390 
setClinicalTrialSiteName(const OFString & value,const OFBool check)2391 OFCondition DRTStructureSetIOD::setClinicalTrialSiteName(const OFString &value, const OFBool check)
2392 {
2393     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2394     if (result.good())
2395         result = ClinicalTrialSiteName.putOFStringArray(value);
2396     return result;
2397 }
2398 
2399 
setClinicalTrialSponsorName(const OFString & value,const OFBool check)2400 OFCondition DRTStructureSetIOD::setClinicalTrialSponsorName(const OFString &value, const OFBool check)
2401 {
2402     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2403     if (result.good())
2404         result = ClinicalTrialSponsorName.putOFStringArray(value);
2405     return result;
2406 }
2407 
2408 
setClinicalTrialSubjectID(const OFString & value,const OFBool check)2409 OFCondition DRTStructureSetIOD::setClinicalTrialSubjectID(const OFString &value, const OFBool check)
2410 {
2411     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2412     if (result.good())
2413         result = ClinicalTrialSubjectID.putOFStringArray(value);
2414     return result;
2415 }
2416 
2417 
setClinicalTrialSubjectReadingID(const OFString & value,const OFBool check)2418 OFCondition DRTStructureSetIOD::setClinicalTrialSubjectReadingID(const OFString &value, const OFBool check)
2419 {
2420     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2421     if (result.good())
2422         result = ClinicalTrialSubjectReadingID.putOFStringArray(value);
2423     return result;
2424 }
2425 
2426 
setClinicalTrialTimePointDescription(const OFString & value,const OFBool check)2427 OFCondition DRTStructureSetIOD::setClinicalTrialTimePointDescription(const OFString &value, const OFBool check)
2428 {
2429     OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
2430     if (result.good())
2431         result = ClinicalTrialTimePointDescription.putOFStringArray(value);
2432     return result;
2433 }
2434 
2435 
setClinicalTrialTimePointID(const OFString & value,const OFBool check)2436 OFCondition DRTStructureSetIOD::setClinicalTrialTimePointID(const OFString &value, const OFBool check)
2437 {
2438     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2439     if (result.good())
2440         result = ClinicalTrialTimePointID.putOFStringArray(value);
2441     return result;
2442 }
2443 
2444 
setCommentsOnThePerformedProcedureStep(const OFString & value,const OFBool check)2445 OFCondition DRTStructureSetIOD::setCommentsOnThePerformedProcedureStep(const OFString &value, const OFBool check)
2446 {
2447     OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
2448     if (result.good())
2449         result = CommentsOnThePerformedProcedureStep.putOFStringArray(value);
2450     return result;
2451 }
2452 
2453 
setConsultingPhysicianName(const OFString & value,const OFBool check)2454 OFCondition DRTStructureSetIOD::setConsultingPhysicianName(const OFString &value, const OFBool check)
2455 {
2456     OFCondition result = (check) ? DcmPersonName::checkStringValue(value, "1-n") : EC_Normal;
2457     if (result.good())
2458         result = ConsultingPhysicianName.putOFStringArray(value);
2459     return result;
2460 }
2461 
2462 
setContentQualification(const OFString & value,const OFBool check)2463 OFCondition DRTStructureSetIOD::setContentQualification(const OFString &value, const OFBool check)
2464 {
2465     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
2466     if (result.good())
2467         result = ContentQualification.putOFStringArray(value);
2468     return result;
2469 }
2470 
2471 
setDateOfLastCalibration(const OFString & value,const OFBool check)2472 OFCondition DRTStructureSetIOD::setDateOfLastCalibration(const OFString &value, const OFBool check)
2473 {
2474     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1-n") : EC_Normal;
2475     if (result.good())
2476         result = DateOfLastCalibration.putOFStringArray(value);
2477     return result;
2478 }
2479 
2480 
setDeidentificationMethod(const OFString & value,const OFBool check)2481 OFCondition DRTStructureSetIOD::setDeidentificationMethod(const OFString &value, const OFBool check)
2482 {
2483     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
2484     if (result.good())
2485         result = DeidentificationMethod.putOFStringArray(value);
2486     return result;
2487 }
2488 
2489 
setDerivationDescription(const OFString & value,const OFBool check)2490 OFCondition DRTStructureSetIOD::setDerivationDescription(const OFString &value, const OFBool check)
2491 {
2492     OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
2493     if (result.good())
2494         result = DerivationDescription.putOFStringArray(value);
2495     return result;
2496 }
2497 
2498 
setDeviceSerialNumber(const OFString & value,const OFBool check)2499 OFCondition DRTStructureSetIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
2500 {
2501     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2502     if (result.good())
2503         result = DeviceSerialNumber.putOFStringArray(value);
2504     return result;
2505 }
2506 
2507 
setEthnicGroup(const OFString & value,const OFBool check)2508 OFCondition DRTStructureSetIOD::setEthnicGroup(const OFString &value, const OFBool check)
2509 {
2510     OFCondition result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
2511     if (result.good())
2512         result = EthnicGroup.putOFStringArray(value);
2513     return result;
2514 }
2515 
2516 
setFrameOfReferenceUID(const OFString & value,const OFBool check)2517 OFCondition DRTStructureSetIOD::setFrameOfReferenceUID(const OFString &value, const OFBool check)
2518 {
2519     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
2520     if (result.good())
2521         result = FrameOfReferenceUID.putOFStringArray(value);
2522     return result;
2523 }
2524 
2525 
setGantryID(const OFString & value,const OFBool check)2526 OFCondition DRTStructureSetIOD::setGantryID(const OFString &value, const OFBool check)
2527 {
2528     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2529     if (result.good())
2530         result = GantryID.putOFStringArray(value);
2531     return result;
2532 }
2533 
2534 
setInstanceCoercionDateTime(const OFString & value,const OFBool check)2535 OFCondition DRTStructureSetIOD::setInstanceCoercionDateTime(const OFString &value, const OFBool check)
2536 {
2537     OFCondition result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
2538     if (result.good())
2539         result = InstanceCoercionDateTime.putOFStringArray(value);
2540     return result;
2541 }
2542 
2543 
setInstanceCreationDate(const OFString & value,const OFBool check)2544 OFCondition DRTStructureSetIOD::setInstanceCreationDate(const OFString &value, const OFBool check)
2545 {
2546     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
2547     if (result.good())
2548         result = InstanceCreationDate.putOFStringArray(value);
2549     return result;
2550 }
2551 
2552 
setInstanceCreationTime(const OFString & value,const OFBool check)2553 OFCondition DRTStructureSetIOD::setInstanceCreationTime(const OFString &value, const OFBool check)
2554 {
2555     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
2556     if (result.good())
2557         result = InstanceCreationTime.putOFStringArray(value);
2558     return result;
2559 }
2560 
2561 
setInstanceCreatorUID(const OFString & value,const OFBool check)2562 OFCondition DRTStructureSetIOD::setInstanceCreatorUID(const OFString &value, const OFBool check)
2563 {
2564     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
2565     if (result.good())
2566         result = InstanceCreatorUID.putOFStringArray(value);
2567     return result;
2568 }
2569 
2570 
setInstanceNumber(const OFString & value,const OFBool check)2571 OFCondition DRTStructureSetIOD::setInstanceNumber(const OFString &value, const OFBool check)
2572 {
2573     OFCondition result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal;
2574     if (result.good())
2575         result = InstanceNumber.putOFStringArray(value);
2576     return result;
2577 }
2578 
2579 
setInstitutionAddress(const OFString & value,const OFBool check)2580 OFCondition DRTStructureSetIOD::setInstitutionAddress(const OFString &value, const OFBool check)
2581 {
2582     OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
2583     if (result.good())
2584         result = InstitutionAddress.putOFStringArray(value);
2585     return result;
2586 }
2587 
2588 
setInstitutionName(const OFString & value,const OFBool check)2589 OFCondition DRTStructureSetIOD::setInstitutionName(const OFString &value, const OFBool check)
2590 {
2591     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2592     if (result.good())
2593         result = InstitutionName.putOFStringArray(value);
2594     return result;
2595 }
2596 
2597 
setInstitutionalDepartmentName(const OFString & value,const OFBool check)2598 OFCondition DRTStructureSetIOD::setInstitutionalDepartmentName(const OFString &value, const OFBool check)
2599 {
2600     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2601     if (result.good())
2602         result = InstitutionalDepartmentName.putOFStringArray(value);
2603     return result;
2604 }
2605 
2606 
setIssuerOfPatientID(const OFString & value,const OFBool check)2607 OFCondition DRTStructureSetIOD::setIssuerOfPatientID(const OFString &value, const OFBool check)
2608 {
2609     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2610     if (result.good())
2611         result = IssuerOfPatientID.putOFStringArray(value);
2612     return result;
2613 }
2614 
2615 
setLastMenstrualDate(const OFString & value,const OFBool check)2616 OFCondition DRTStructureSetIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
2617 {
2618     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
2619     if (result.good())
2620         result = LastMenstrualDate.putOFStringArray(value);
2621     return result;
2622 }
2623 
2624 
setLongitudinalTemporalEventType(const OFString & value,const OFBool check)2625 OFCondition DRTStructureSetIOD::setLongitudinalTemporalEventType(const OFString &value, const OFBool check)
2626 {
2627     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
2628     if (result.good())
2629         result = LongitudinalTemporalEventType.putOFStringArray(value);
2630     return result;
2631 }
2632 
2633 
setLongitudinalTemporalInformationModified(const OFString & value,const OFBool check)2634 OFCondition DRTStructureSetIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
2635 {
2636     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
2637     if (result.good())
2638         result = LongitudinalTemporalInformationModified.putOFStringArray(value);
2639     return result;
2640 }
2641 
2642 
setLongitudinalTemporalOffsetFromEvent(const Float64 value,const unsigned long pos)2643 OFCondition DRTStructureSetIOD::setLongitudinalTemporalOffsetFromEvent(const Float64 value, const unsigned long pos)
2644 {
2645     return LongitudinalTemporalOffsetFromEvent.putFloat64(value, pos);
2646 }
2647 
2648 
setManufacturer(const OFString & value,const OFBool check)2649 OFCondition DRTStructureSetIOD::setManufacturer(const OFString &value, const OFBool check)
2650 {
2651     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2652     if (result.good())
2653         result = Manufacturer.putOFStringArray(value);
2654     return result;
2655 }
2656 
2657 
setManufacturerModelName(const OFString & value,const OFBool check)2658 OFCondition DRTStructureSetIOD::setManufacturerModelName(const OFString &value, const OFBool check)
2659 {
2660     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2661     if (result.good())
2662         result = ManufacturerModelName.putOFStringArray(value);
2663     return result;
2664 }
2665 
2666 
setMeasuredAPDimension(const OFString & value,const OFBool check)2667 OFCondition DRTStructureSetIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
2668 {
2669     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
2670     if (result.good())
2671         result = MeasuredAPDimension.putOFStringArray(value);
2672     return result;
2673 }
2674 
2675 
setMeasuredLateralDimension(const OFString & value,const OFBool check)2676 OFCondition DRTStructureSetIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
2677 {
2678     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
2679     if (result.good())
2680         result = MeasuredLateralDimension.putOFStringArray(value);
2681     return result;
2682 }
2683 
2684 
setMedicalAlerts(const OFString & value,const OFBool check)2685 OFCondition DRTStructureSetIOD::setMedicalAlerts(const OFString &value, const OFBool check)
2686 {
2687     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
2688     if (result.good())
2689         result = MedicalAlerts.putOFStringArray(value);
2690     return result;
2691 }
2692 
2693 
setModality(const OFString & value,const OFBool check)2694 OFCondition DRTStructureSetIOD::setModality(const OFString &value, const OFBool check)
2695 {
2696     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
2697     if (result.good())
2698         result = Modality.putOFStringArray(value);
2699     return result;
2700 }
2701 
2702 
setNameOfPhysiciansReadingStudy(const OFString & value,const OFBool check)2703 OFCondition DRTStructureSetIOD::setNameOfPhysiciansReadingStudy(const OFString &value, const OFBool check)
2704 {
2705     OFCondition result = (check) ? DcmPersonName::checkStringValue(value, "1-n") : EC_Normal;
2706     if (result.good())
2707         result = NameOfPhysiciansReadingStudy.putOFStringArray(value);
2708     return result;
2709 }
2710 
2711 
setOccupation(const OFString & value,const OFBool check)2712 OFCondition DRTStructureSetIOD::setOccupation(const OFString &value, const OFBool check)
2713 {
2714     OFCondition result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
2715     if (result.good())
2716         result = Occupation.putOFStringArray(value);
2717     return result;
2718 }
2719 
2720 
setOperatorsName(const OFString & value,const OFBool check)2721 OFCondition DRTStructureSetIOD::setOperatorsName(const OFString &value, const OFBool check)
2722 {
2723     OFCondition result = (check) ? DcmPersonName::checkStringValue(value, "1-n") : EC_Normal;
2724     if (result.good())
2725         result = OperatorsName.putOFStringArray(value);
2726     return result;
2727 }
2728 
2729 
setOriginalSpecializedSOPClassUID(const OFString & value,const OFBool check)2730 OFCondition DRTStructureSetIOD::setOriginalSpecializedSOPClassUID(const OFString &value, const OFBool check)
2731 {
2732     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
2733     if (result.good())
2734         result = OriginalSpecializedSOPClassUID.putOFStringArray(value);
2735     return result;
2736 }
2737 
2738 
setOtherPatientNames(const OFString & value,const OFBool check)2739 OFCondition DRTStructureSetIOD::setOtherPatientNames(const OFString &value, const OFBool check)
2740 {
2741     OFCondition result = (check) ? DcmPersonName::checkStringValue(value, "1-n") : EC_Normal;
2742     if (result.good())
2743         result = OtherPatientNames.putOFStringArray(value);
2744     return result;
2745 }
2746 
2747 
setPatientAge(const OFString & value,const OFBool check)2748 OFCondition DRTStructureSetIOD::setPatientAge(const OFString &value, const OFBool check)
2749 {
2750     OFCondition result = (check) ? DcmAgeString::checkStringValue(value, "1") : EC_Normal;
2751     if (result.good())
2752         result = PatientAge.putOFStringArray(value);
2753     return result;
2754 }
2755 
2756 
setPatientAlternativeCalendar(const OFString & value,const OFBool check)2757 OFCondition DRTStructureSetIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
2758 {
2759     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
2760     if (result.good())
2761         result = PatientAlternativeCalendar.putOFStringArray(value);
2762     return result;
2763 }
2764 
2765 
setPatientBirthDate(const OFString & value,const OFBool check)2766 OFCondition DRTStructureSetIOD::setPatientBirthDate(const OFString &value, const OFBool check)
2767 {
2768     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
2769     if (result.good())
2770         result = PatientBirthDate.putOFStringArray(value);
2771     return result;
2772 }
2773 
2774 
setPatientBirthDateInAlternativeCalendar(const OFString & value,const OFBool check)2775 OFCondition DRTStructureSetIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
2776 {
2777     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2778     if (result.good())
2779         result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
2780     return result;
2781 }
2782 
2783 
setPatientBirthTime(const OFString & value,const OFBool check)2784 OFCondition DRTStructureSetIOD::setPatientBirthTime(const OFString &value, const OFBool check)
2785 {
2786     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
2787     if (result.good())
2788         result = PatientBirthTime.putOFStringArray(value);
2789     return result;
2790 }
2791 
2792 
setPatientBodyMassIndex(const OFString & value,const OFBool check)2793 OFCondition DRTStructureSetIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
2794 {
2795     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
2796     if (result.good())
2797         result = PatientBodyMassIndex.putOFStringArray(value);
2798     return result;
2799 }
2800 
2801 
setPatientBreedDescription(const OFString & value,const OFBool check)2802 OFCondition DRTStructureSetIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
2803 {
2804     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2805     if (result.good())
2806         result = PatientBreedDescription.putOFStringArray(value);
2807     return result;
2808 }
2809 
2810 
setPatientComments(const OFString & value,const OFBool check)2811 OFCondition DRTStructureSetIOD::setPatientComments(const OFString &value, const OFBool check)
2812 {
2813     OFCondition result = (check) ? DcmLongText::checkStringValue(value) : EC_Normal;
2814     if (result.good())
2815         result = PatientComments.putOFStringArray(value);
2816     return result;
2817 }
2818 
2819 
setPatientDeathDateInAlternativeCalendar(const OFString & value,const OFBool check)2820 OFCondition DRTStructureSetIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
2821 {
2822     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2823     if (result.good())
2824         result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
2825     return result;
2826 }
2827 
2828 
setPatientID(const OFString & value,const OFBool check)2829 OFCondition DRTStructureSetIOD::setPatientID(const OFString &value, const OFBool check)
2830 {
2831     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2832     if (result.good())
2833         result = PatientID.putOFStringArray(value);
2834     return result;
2835 }
2836 
2837 
setPatientIdentityRemoved(const OFString & value,const OFBool check)2838 OFCondition DRTStructureSetIOD::setPatientIdentityRemoved(const OFString &value, const OFBool check)
2839 {
2840     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
2841     if (result.good())
2842         result = PatientIdentityRemoved.putOFStringArray(value);
2843     return result;
2844 }
2845 
2846 
setPatientName(const OFString & value,const OFBool check)2847 OFCondition DRTStructureSetIOD::setPatientName(const OFString &value, const OFBool check)
2848 {
2849     OFCondition result = (check) ? DcmPersonName::checkStringValue(value, "1") : EC_Normal;
2850     if (result.good())
2851         result = PatientName.putOFStringArray(value);
2852     return result;
2853 }
2854 
2855 
setPatientSex(const OFString & value,const OFBool check)2856 OFCondition DRTStructureSetIOD::setPatientSex(const OFString &value, const OFBool check)
2857 {
2858     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
2859     if (result.good())
2860         result = PatientSex.putOFStringArray(value);
2861     return result;
2862 }
2863 
2864 
setPatientSexNeutered(const OFString & value,const OFBool check)2865 OFCondition DRTStructureSetIOD::setPatientSexNeutered(const OFString &value, const OFBool check)
2866 {
2867     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
2868     if (result.good())
2869         result = PatientSexNeutered.putOFStringArray(value);
2870     return result;
2871 }
2872 
2873 
setPatientSize(const OFString & value,const OFBool check)2874 OFCondition DRTStructureSetIOD::setPatientSize(const OFString &value, const OFBool check)
2875 {
2876     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
2877     if (result.good())
2878         result = PatientSize.putOFStringArray(value);
2879     return result;
2880 }
2881 
2882 
setPatientSpeciesDescription(const OFString & value,const OFBool check)2883 OFCondition DRTStructureSetIOD::setPatientSpeciesDescription(const OFString &value, const OFBool check)
2884 {
2885     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2886     if (result.good())
2887         result = PatientSpeciesDescription.putOFStringArray(value);
2888     return result;
2889 }
2890 
2891 
setPatientState(const OFString & value,const OFBool check)2892 OFCondition DRTStructureSetIOD::setPatientState(const OFString &value, const OFBool check)
2893 {
2894     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2895     if (result.good())
2896         result = PatientState.putOFStringArray(value);
2897     return result;
2898 }
2899 
2900 
setPatientWeight(const OFString & value,const OFBool check)2901 OFCondition DRTStructureSetIOD::setPatientWeight(const OFString &value, const OFBool check)
2902 {
2903     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
2904     if (result.good())
2905         result = PatientWeight.putOFStringArray(value);
2906     return result;
2907 }
2908 
2909 
setPerformedProcedureStepDescription(const OFString & value,const OFBool check)2910 OFCondition DRTStructureSetIOD::setPerformedProcedureStepDescription(const OFString &value, const OFBool check)
2911 {
2912     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2913     if (result.good())
2914         result = PerformedProcedureStepDescription.putOFStringArray(value);
2915     return result;
2916 }
2917 
2918 
setPerformedProcedureStepEndDate(const OFString & value,const OFBool check)2919 OFCondition DRTStructureSetIOD::setPerformedProcedureStepEndDate(const OFString &value, const OFBool check)
2920 {
2921     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
2922     if (result.good())
2923         result = PerformedProcedureStepEndDate.putOFStringArray(value);
2924     return result;
2925 }
2926 
2927 
setPerformedProcedureStepEndTime(const OFString & value,const OFBool check)2928 OFCondition DRTStructureSetIOD::setPerformedProcedureStepEndTime(const OFString &value, const OFBool check)
2929 {
2930     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
2931     if (result.good())
2932         result = PerformedProcedureStepEndTime.putOFStringArray(value);
2933     return result;
2934 }
2935 
2936 
setPerformedProcedureStepID(const OFString & value,const OFBool check)2937 OFCondition DRTStructureSetIOD::setPerformedProcedureStepID(const OFString &value, const OFBool check)
2938 {
2939     OFCondition result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
2940     if (result.good())
2941         result = PerformedProcedureStepID.putOFStringArray(value);
2942     return result;
2943 }
2944 
2945 
setPerformedProcedureStepStartDate(const OFString & value,const OFBool check)2946 OFCondition DRTStructureSetIOD::setPerformedProcedureStepStartDate(const OFString &value, const OFBool check)
2947 {
2948     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
2949     if (result.good())
2950         result = PerformedProcedureStepStartDate.putOFStringArray(value);
2951     return result;
2952 }
2953 
2954 
setPerformedProcedureStepStartTime(const OFString & value,const OFBool check)2955 OFCondition DRTStructureSetIOD::setPerformedProcedureStepStartTime(const OFString &value, const OFBool check)
2956 {
2957     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
2958     if (result.good())
2959         result = PerformedProcedureStepStartTime.putOFStringArray(value);
2960     return result;
2961 }
2962 
2963 
setPhysiciansOfRecord(const OFString & value,const OFBool check)2964 OFCondition DRTStructureSetIOD::setPhysiciansOfRecord(const OFString &value, const OFBool check)
2965 {
2966     OFCondition result = (check) ? DcmPersonName::checkStringValue(value, "1-n") : EC_Normal;
2967     if (result.good())
2968         result = PhysiciansOfRecord.putOFStringArray(value);
2969     return result;
2970 }
2971 
2972 
setPixelPaddingValue(const Uint16 value,const unsigned long pos)2973 OFCondition DRTStructureSetIOD::setPixelPaddingValue(const Uint16 value, const unsigned long pos)
2974 {
2975     return PixelPaddingValue.putUint16(value, pos);
2976 }
2977 
2978 
setPositionReferenceIndicator(const OFString & value,const OFBool check)2979 OFCondition DRTStructureSetIOD::setPositionReferenceIndicator(const OFString &value, const OFBool check)
2980 {
2981     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
2982     if (result.good())
2983         result = PositionReferenceIndicator.putOFStringArray(value);
2984     return result;
2985 }
2986 
2987 
setPregnancyStatus(const Uint16 value,const unsigned long pos)2988 OFCondition DRTStructureSetIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
2989 {
2990     return PregnancyStatus.putUint16(value, pos);
2991 }
2992 
2993 
setQualityControlSubject(const OFString & value,const OFBool check)2994 OFCondition DRTStructureSetIOD::setQualityControlSubject(const OFString &value, const OFBool check)
2995 {
2996     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
2997     if (result.good())
2998         result = QualityControlSubject.putOFStringArray(value);
2999     return result;
3000 }
3001 
3002 
setQueryRetrieveView(const OFString & value,const OFBool check)3003 OFCondition DRTStructureSetIOD::setQueryRetrieveView(const OFString &value, const OFBool check)
3004 {
3005     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
3006     if (result.good())
3007         result = QueryRetrieveView.putOFStringArray(value);
3008     return result;
3009 }
3010 
3011 
setReferringPhysicianName(const OFString & value,const OFBool check)3012 OFCondition DRTStructureSetIOD::setReferringPhysicianName(const OFString &value, const OFBool check)
3013 {
3014     OFCondition result = (check) ? DcmPersonName::checkStringValue(value, "1") : EC_Normal;
3015     if (result.good())
3016         result = ReferringPhysicianName.putOFStringArray(value);
3017     return result;
3018 }
3019 
3020 
setRelatedGeneralSOPClassUID(const OFString & value,const OFBool check)3021 OFCondition DRTStructureSetIOD::setRelatedGeneralSOPClassUID(const OFString &value, const OFBool check)
3022 {
3023     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1-n") : EC_Normal;
3024     if (result.good())
3025         result = RelatedGeneralSOPClassUID.putOFStringArray(value);
3026     return result;
3027 }
3028 
3029 
setResponsibleOrganization(const OFString & value,const OFBool check)3030 OFCondition DRTStructureSetIOD::setResponsibleOrganization(const OFString &value, const OFBool check)
3031 {
3032     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
3033     if (result.good())
3034         result = ResponsibleOrganization.putOFStringArray(value);
3035     return result;
3036 }
3037 
3038 
setResponsiblePerson(const OFString & value,const OFBool check)3039 OFCondition DRTStructureSetIOD::setResponsiblePerson(const OFString &value, const OFBool check)
3040 {
3041     OFCondition result = (check) ? DcmPersonName::checkStringValue(value, "1") : EC_Normal;
3042     if (result.good())
3043         result = ResponsiblePerson.putOFStringArray(value);
3044     return result;
3045 }
3046 
3047 
setResponsiblePersonRole(const OFString & value,const OFBool check)3048 OFCondition DRTStructureSetIOD::setResponsiblePersonRole(const OFString &value, const OFBool check)
3049 {
3050     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
3051     if (result.good())
3052         result = ResponsiblePersonRole.putOFStringArray(value);
3053     return result;
3054 }
3055 
3056 
setReviewDate(const OFString & value,const OFBool check)3057 OFCondition DRTStructureSetIOD::setReviewDate(const OFString &value, const OFBool check)
3058 {
3059     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
3060     if (result.good())
3061         result = ReviewDate.putOFStringArray(value);
3062     return result;
3063 }
3064 
3065 
setReviewTime(const OFString & value,const OFBool check)3066 OFCondition DRTStructureSetIOD::setReviewTime(const OFString &value, const OFBool check)
3067 {
3068     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
3069     if (result.good())
3070         result = ReviewTime.putOFStringArray(value);
3071     return result;
3072 }
3073 
3074 
setReviewerName(const OFString & value,const OFBool check)3075 OFCondition DRTStructureSetIOD::setReviewerName(const OFString &value, const OFBool check)
3076 {
3077     OFCondition result = (check) ? DcmPersonName::checkStringValue(value, "1") : EC_Normal;
3078     if (result.good())
3079         result = ReviewerName.putOFStringArray(value);
3080     return result;
3081 }
3082 
3083 
setSOPAuthorizationComment(const OFString & value,const OFBool check)3084 OFCondition DRTStructureSetIOD::setSOPAuthorizationComment(const OFString &value, const OFBool check)
3085 {
3086     OFCondition result = (check) ? DcmLongText::checkStringValue(value) : EC_Normal;
3087     if (result.good())
3088         result = SOPAuthorizationComment.putOFStringArray(value);
3089     return result;
3090 }
3091 
3092 
setSOPAuthorizationDateTime(const OFString & value,const OFBool check)3093 OFCondition DRTStructureSetIOD::setSOPAuthorizationDateTime(const OFString &value, const OFBool check)
3094 {
3095     OFCondition result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
3096     if (result.good())
3097         result = SOPAuthorizationDateTime.putOFStringArray(value);
3098     return result;
3099 }
3100 
3101 
setSOPClassUID(const OFString & value,const OFBool check)3102 OFCondition DRTStructureSetIOD::setSOPClassUID(const OFString &value, const OFBool check)
3103 {
3104     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
3105     if (result.good())
3106         result = SOPClassUID.putOFStringArray(value);
3107     return result;
3108 }
3109 
3110 
setSOPInstanceStatus(const OFString & value,const OFBool check)3111 OFCondition DRTStructureSetIOD::setSOPInstanceStatus(const OFString &value, const OFBool check)
3112 {
3113     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
3114     if (result.good())
3115         result = SOPInstanceStatus.putOFStringArray(value);
3116     return result;
3117 }
3118 
3119 
setSOPInstanceUID(const OFString & value,const OFBool check)3120 OFCondition DRTStructureSetIOD::setSOPInstanceUID(const OFString &value, const OFBool check)
3121 {
3122     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
3123     if (result.good())
3124         result = SOPInstanceUID.putOFStringArray(value);
3125     return result;
3126 }
3127 
3128 
setSeriesDate(const OFString & value,const OFBool check)3129 OFCondition DRTStructureSetIOD::setSeriesDate(const OFString &value, const OFBool check)
3130 {
3131     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
3132     if (result.good())
3133         result = SeriesDate.putOFStringArray(value);
3134     return result;
3135 }
3136 
3137 
setSeriesDescription(const OFString & value,const OFBool check)3138 OFCondition DRTStructureSetIOD::setSeriesDescription(const OFString &value, const OFBool check)
3139 {
3140     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
3141     if (result.good())
3142         result = SeriesDescription.putOFStringArray(value);
3143     return result;
3144 }
3145 
3146 
setSeriesInstanceUID(const OFString & value,const OFBool check)3147 OFCondition DRTStructureSetIOD::setSeriesInstanceUID(const OFString &value, const OFBool check)
3148 {
3149     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
3150     if (result.good())
3151         result = SeriesInstanceUID.putOFStringArray(value);
3152     return result;
3153 }
3154 
3155 
setSeriesNumber(const OFString & value,const OFBool check)3156 OFCondition DRTStructureSetIOD::setSeriesNumber(const OFString &value, const OFBool check)
3157 {
3158     OFCondition result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal;
3159     if (result.good())
3160         result = SeriesNumber.putOFStringArray(value);
3161     return result;
3162 }
3163 
3164 
setSeriesTime(const OFString & value,const OFBool check)3165 OFCondition DRTStructureSetIOD::setSeriesTime(const OFString &value, const OFBool check)
3166 {
3167     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
3168     if (result.good())
3169         result = SeriesTime.putOFStringArray(value);
3170     return result;
3171 }
3172 
3173 
setServiceEpisodeDescription(const OFString & value,const OFBool check)3174 OFCondition DRTStructureSetIOD::setServiceEpisodeDescription(const OFString &value, const OFBool check)
3175 {
3176     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
3177     if (result.good())
3178         result = ServiceEpisodeDescription.putOFStringArray(value);
3179     return result;
3180 }
3181 
3182 
setServiceEpisodeID(const OFString & value,const OFBool check)3183 OFCondition DRTStructureSetIOD::setServiceEpisodeID(const OFString &value, const OFBool check)
3184 {
3185     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
3186     if (result.good())
3187         result = ServiceEpisodeID.putOFStringArray(value);
3188     return result;
3189 }
3190 
3191 
setSmokingStatus(const OFString & value,const OFBool check)3192 OFCondition DRTStructureSetIOD::setSmokingStatus(const OFString &value, const OFBool check)
3193 {
3194     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
3195     if (result.good())
3196         result = SmokingStatus.putOFStringArray(value);
3197     return result;
3198 }
3199 
3200 
setSoftwareVersions(const OFString & value,const OFBool check)3201 OFCondition DRTStructureSetIOD::setSoftwareVersions(const OFString &value, const OFBool check)
3202 {
3203     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
3204     if (result.good())
3205         result = SoftwareVersions.putOFStringArray(value);
3206     return result;
3207 }
3208 
3209 
setSpatialResolution(const OFString & value,const OFBool check)3210 OFCondition DRTStructureSetIOD::setSpatialResolution(const OFString &value, const OFBool check)
3211 {
3212     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
3213     if (result.good())
3214         result = SpatialResolution.putOFStringArray(value);
3215     return result;
3216 }
3217 
3218 
setSpecificCharacterSet(const OFString & value,const OFBool check)3219 OFCondition DRTStructureSetIOD::setSpecificCharacterSet(const OFString &value, const OFBool check)
3220 {
3221     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1-n") : EC_Normal;
3222     if (result.good())
3223         result = SpecificCharacterSet.putOFStringArray(value);
3224     return result;
3225 }
3226 
3227 
setStationName(const OFString & value,const OFBool check)3228 OFCondition DRTStructureSetIOD::setStationName(const OFString &value, const OFBool check)
3229 {
3230     OFCondition result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
3231     if (result.good())
3232         result = StationName.putOFStringArray(value);
3233     return result;
3234 }
3235 
3236 
setStrainAdditionalInformation(const OFString & value,const OFBool check)3237 OFCondition DRTStructureSetIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
3238 {
3239     OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
3240     if (result.good())
3241         result = StrainAdditionalInformation.putOFStringArray(value);
3242     return result;
3243 }
3244 
3245 
setStrainDescription(const OFString & value,const OFBool check)3246 OFCondition DRTStructureSetIOD::setStrainDescription(const OFString &value, const OFBool check)
3247 {
3248     OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
3249     if (result.good())
3250         result = StrainDescription.putOFStringArray(value);
3251     return result;
3252 }
3253 
3254 
setStrainNomenclature(const OFString & value,const OFBool check)3255 OFCondition DRTStructureSetIOD::setStrainNomenclature(const OFString &value, const OFBool check)
3256 {
3257     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
3258     if (result.good())
3259         result = StrainNomenclature.putOFStringArray(value);
3260     return result;
3261 }
3262 
3263 
setStructureSetDate(const OFString & value,const OFBool check)3264 OFCondition DRTStructureSetIOD::setStructureSetDate(const OFString &value, const OFBool check)
3265 {
3266     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
3267     if (result.good())
3268         result = StructureSetDate.putOFStringArray(value);
3269     return result;
3270 }
3271 
3272 
setStructureSetDescription(const OFString & value,const OFBool check)3273 OFCondition DRTStructureSetIOD::setStructureSetDescription(const OFString &value, const OFBool check)
3274 {
3275     OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
3276     if (result.good())
3277         result = StructureSetDescription.putOFStringArray(value);
3278     return result;
3279 }
3280 
3281 
setStructureSetLabel(const OFString & value,const OFBool check)3282 OFCondition DRTStructureSetIOD::setStructureSetLabel(const OFString &value, const OFBool check)
3283 {
3284     OFCondition result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
3285     if (result.good())
3286         result = StructureSetLabel.putOFStringArray(value);
3287     return result;
3288 }
3289 
3290 
setStructureSetName(const OFString & value,const OFBool check)3291 OFCondition DRTStructureSetIOD::setStructureSetName(const OFString &value, const OFBool check)
3292 {
3293     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
3294     if (result.good())
3295         result = StructureSetName.putOFStringArray(value);
3296     return result;
3297 }
3298 
3299 
setStructureSetTime(const OFString & value,const OFBool check)3300 OFCondition DRTStructureSetIOD::setStructureSetTime(const OFString &value, const OFBool check)
3301 {
3302     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
3303     if (result.good())
3304         result = StructureSetTime.putOFStringArray(value);
3305     return result;
3306 }
3307 
3308 
setStudyDate(const OFString & value,const OFBool check)3309 OFCondition DRTStructureSetIOD::setStudyDate(const OFString &value, const OFBool check)
3310 {
3311     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
3312     if (result.good())
3313         result = StudyDate.putOFStringArray(value);
3314     return result;
3315 }
3316 
3317 
setStudyDescription(const OFString & value,const OFBool check)3318 OFCondition DRTStructureSetIOD::setStudyDescription(const OFString &value, const OFBool check)
3319 {
3320     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
3321     if (result.good())
3322         result = StudyDescription.putOFStringArray(value);
3323     return result;
3324 }
3325 
3326 
setStudyID(const OFString & value,const OFBool check)3327 OFCondition DRTStructureSetIOD::setStudyID(const OFString &value, const OFBool check)
3328 {
3329     OFCondition result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
3330     if (result.good())
3331         result = StudyID.putOFStringArray(value);
3332     return result;
3333 }
3334 
3335 
setStudyInstanceUID(const OFString & value,const OFBool check)3336 OFCondition DRTStructureSetIOD::setStudyInstanceUID(const OFString &value, const OFBool check)
3337 {
3338     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
3339     if (result.good())
3340         result = StudyInstanceUID.putOFStringArray(value);
3341     return result;
3342 }
3343 
3344 
setStudyTime(const OFString & value,const OFBool check)3345 OFCondition DRTStructureSetIOD::setStudyTime(const OFString &value, const OFBool check)
3346 {
3347     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
3348     if (result.good())
3349         result = StudyTime.putOFStringArray(value);
3350     return result;
3351 }
3352 
3353 
setTimeOfLastCalibration(const OFString & value,const OFBool check)3354 OFCondition DRTStructureSetIOD::setTimeOfLastCalibration(const OFString &value, const OFBool check)
3355 {
3356     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1-n") : EC_Normal;
3357     if (result.good())
3358         result = TimeOfLastCalibration.putOFStringArray(value);
3359     return result;
3360 }
3361 
3362 
setTimezoneOffsetFromUTC(const OFString & value,const OFBool check)3363 OFCondition DRTStructureSetIOD::setTimezoneOffsetFromUTC(const OFString &value, const OFBool check)
3364 {
3365     OFCondition result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
3366     if (result.good())
3367         result = TimezoneOffsetFromUTC.putOFStringArray(value);
3368     return result;
3369 }
3370 
3371 
3372 // end of source file
3373