00001
00002
00003
00004
00005 #ifndef __Header_modulev__
00006 #define __Header_modulev__
00007
00008 bool
00009 Macro_IconImageSequenceMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
00010 {
00011 const char *module = "IconImageSequenceMacro";
00012 (void)module;
00013 (void)list;
00014 (void)verbose;
00015 (void)log;
00016 (void)dict;
00017 Assert(list);
00018 Assert(dict);
00019 AttributeList *parentlist=0;
00020 AttributeList *rootlist=list;
00021
00022 bool success=true;
00023
00024 if (verbose)
00025 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
00026
00027 { Attribute *a = (*list)[TagFromName(SamplesPerPixel)]; if (a) a->setUsed(); }
00028 if (! verifyType1
00029 (SamplesPerPixel,
00030 "IconImageSequenceMacro","SamplesPerPixel",
00031 verbose,log,dict,
00032 0,0)) success=false;
00033
00034 if (SamplesPerPixel && !SamplesPerPixel->verifyEnumValues(
00035 BinaryValueDescription_SamplesPerPixelIsOne,
00036 verbose,log,dict,-1)) success=false;
00037
00038 { Attribute *a = (*list)[TagFromName(PhotometricInterpretation)]; if (a) a->setUsed(); }
00039 if (! verifyType1
00040 (PhotometricInterpretation,
00041 "IconImageSequenceMacro","PhotometricInterpretation",
00042 verbose,log,dict,
00043 0,0)) success=false;
00044
00045 if (PhotometricInterpretation && !PhotometricInterpretation->verifyEnumValues(
00046 StringValueDescription_IconImagePhotometricInterpretation,
00047 verbose,log,dict,-1)) success=false;
00048
00049 { Attribute *a = (*list)[TagFromName(Rows)]; if (a) a->setUsed(); }
00050 if (! verifyType1
00051 (Rows,
00052 "IconImageSequenceMacro","Rows",
00053 verbose,log,dict,
00054 0,0)) success=false;
00055
00056 if (Rows && !Rows->verifyNotZero(
00057 verbose,log,dict,-1,false)) success=false;
00058
00059 { Attribute *a = (*list)[TagFromName(Columns)]; if (a) a->setUsed(); }
00060 if (! verifyType1
00061 (Columns,
00062 "IconImageSequenceMacro","Columns",
00063 verbose,log,dict,
00064 0,0)) success=false;
00065
00066 if (Columns && !Columns->verifyNotZero(
00067 verbose,log,dict,-1,false)) success=false;
00068
00069 { Attribute *a = (*list)[TagFromName(BitsAllocated)]; if (a) a->setUsed(); }
00070 if (! verifyType1
00071 (BitsAllocated,
00072 "IconImageSequenceMacro","BitsAllocated",
00073 verbose,log,dict,
00074 0,0)) success=false;
00075
00076 if (BitsAllocated && !BitsAllocated->verifyEnumValues(
00077 BinaryValueDescription_BitsAre1Or8,
00078 verbose,log,dict,-1)) success=false;
00079
00080 { Attribute *a = (*list)[TagFromName(BitsStored)]; if (a) a->setUsed(); }
00081 if (! verifyType1
00082 (BitsStored,
00083 "IconImageSequenceMacro","BitsStored",
00084 verbose,log,dict,
00085 0,0)) success=false;
00086
00087 if (BitsStored && !BitsStored->verifyEnumValues(
00088 BinaryValueDescription_BitsAre1Or8,
00089 verbose,log,dict,-1)) success=false;
00090
00091 { Attribute *a = (*list)[TagFromName(HighBit)]; if (a) a->setUsed(); }
00092 if (! verifyType1
00093 (HighBit,
00094 "IconImageSequenceMacro","HighBit",
00095 verbose,log,dict,
00096 0,0)) success=false;
00097
00098 if (HighBit && !HighBit->verifyEnumValues(
00099 BinaryValueDescription_BitsAre0Or7,
00100 verbose,log,dict,-1)) success=false;
00101
00102 { Attribute *a = (*list)[TagFromName(PixelRepresentation)]; if (a) a->setUsed(); }
00103 if (! verifyType1
00104 (PixelRepresentation,
00105 "IconImageSequenceMacro","PixelRepresentation",
00106 verbose,log,dict,
00107 0,0)) success=false;
00108
00109 if (PixelRepresentation && !PixelRepresentation->verifyEnumValues(
00110 BinaryValueDescription_PixelRepresentationUnsigned,
00111 verbose,log,dict,-1)) success=false;
00112
00113 { Attribute *a = (*list)[TagFromName(PixelData)]; if (a) a->setUsed(); }
00114 if (! verifyType1
00115 (PixelData,
00116 "IconImageSequenceMacro","PixelData",
00117 verbose,log,dict,
00118 0,0)) success=false;
00119
00120 { Attribute *a = (*list)[TagFromName(PlanarConfiguration)]; if (a) a->setUsed(); }
00121 if (! verifyType1C
00122 (PlanarConfiguration,
00123 "IconImageSequenceMacro","PlanarConfiguration",
00124 verbose,log,dict,
00125 Condition_Never,
00126 false,
00127 list,parentlist,rootlist,
00128 0,0)) success=false;
00129
00130 if (Condition_Never(list,parentlist,rootlist)) {
00131 if (PlanarConfiguration && !PlanarConfiguration->verifyEnumValues(
00132 BinaryValueDescription_PlanarConfiguration,
00133 verbose,log,dict,-1)) success=false;
00134 }
00135
00136 { Attribute *a = (*list)[TagFromName(PixelAspectRatio)]; if (a) a->setUsed(); }
00137 if (! verifyType3
00138 (PixelAspectRatio,
00139 "IconImageSequenceMacro","PixelAspectRatio",
00140 verbose,log,dict,
00141 0,0)) success=false;
00142
00143 if (PixelAspectRatio && !PixelAspectRatio->verifyEnumValues(
00144 BinaryValueDescription_One,
00145 verbose,log,dict,-1)) success=false;
00146
00147 { Attribute *a = (*list)[TagFromName(SmallestImagePixelValue)]; if (a) a->setUsed(); }
00148 if (! verifyType3
00149 (SmallestImagePixelValue,
00150 "IconImageSequenceMacro","SmallestImagePixelValue",
00151 verbose,log,dict,
00152 0,0)) success=false;
00153
00154 { Attribute *a = (*list)[TagFromName(LargestImagePixelValue)]; if (a) a->setUsed(); }
00155 if (! verifyType3
00156 (LargestImagePixelValue,
00157 "IconImageSequenceMacro","LargestImagePixelValue",
00158 verbose,log,dict,
00159 0,0)) success=false;
00160
00161 { Attribute *a = (*list)[TagFromName(RedPaletteColorLookupTableDescriptor)]; if (a) a->setUsed(); }
00162 if (! verifyType1C
00163 (RedPaletteColorLookupTableDescriptor,
00164 "IconImageSequenceMacro","RedPaletteColorLookupTableDescriptor",
00165 verbose,log,dict,
00166 Condition_PhotometricInterpretationNeedsPalette,
00167 false,
00168 list,parentlist,rootlist,
00169 0,0)) success=false;
00170
00171
00172 if (RedPaletteColorLookupTableDescriptor && !RedPaletteColorLookupTableDescriptor->verifyEnumValues(
00173 BinaryValueDescription_BitsAre8Or16,
00174 verbose,log,dict,2)) success=false;
00175
00176 { Attribute *a = (*list)[TagFromName(GreenPaletteColorLookupTableDescriptor)]; if (a) a->setUsed(); }
00177 if (! verifyType1C
00178 (GreenPaletteColorLookupTableDescriptor,
00179 "IconImageSequenceMacro","GreenPaletteColorLookupTableDescriptor",
00180 verbose,log,dict,
00181 Condition_PhotometricInterpretationNeedsPalette,
00182 false,
00183 list,parentlist,rootlist,
00184 0,0)) success=false;
00185
00186
00187 if (GreenPaletteColorLookupTableDescriptor && !GreenPaletteColorLookupTableDescriptor->verifyEnumValues(
00188 BinaryValueDescription_BitsAre8Or16,
00189 verbose,log,dict,2)) success=false;
00190
00191 { Attribute *a = (*list)[TagFromName(BluePaletteColorLookupTableDescriptor)]; if (a) a->setUsed(); }
00192 if (! verifyType1C
00193 (BluePaletteColorLookupTableDescriptor,
00194 "IconImageSequenceMacro","BluePaletteColorLookupTableDescriptor",
00195 verbose,log,dict,
00196 Condition_PhotometricInterpretationNeedsPalette,
00197 false,
00198 list,parentlist,rootlist,
00199 0,0)) success=false;
00200
00201
00202 if (BluePaletteColorLookupTableDescriptor && !BluePaletteColorLookupTableDescriptor->verifyEnumValues(
00203 BinaryValueDescription_BitsAre8Or16,
00204 verbose,log,dict,2)) success=false;
00205
00206 { Attribute *a = (*list)[TagFromName(RedPaletteColorLookupTableData)]; if (a) a->setUsed(); }
00207 if (! verifyType1C
00208 (RedPaletteColorLookupTableData,
00209 "IconImageSequenceMacro","RedPaletteColorLookupTableData",
00210 verbose,log,dict,
00211 Condition_PhotometricInterpretationNeedsPalette,
00212 false,
00213 list,parentlist,rootlist,
00214 0,0)) success=false;
00215
00216 { Attribute *a = (*list)[TagFromName(GreenPaletteColorLookupTableData)]; if (a) a->setUsed(); }
00217 if (! verifyType1C
00218 (GreenPaletteColorLookupTableData,
00219 "IconImageSequenceMacro","GreenPaletteColorLookupTableData",
00220 verbose,log,dict,
00221 Condition_PhotometricInterpretationNeedsPalette,
00222 false,
00223 list,parentlist,rootlist,
00224 0,0)) success=false;
00225
00226 { Attribute *a = (*list)[TagFromName(BluePaletteColorLookupTableData)]; if (a) a->setUsed(); }
00227 if (! verifyType1C
00228 (BluePaletteColorLookupTableData,
00229 "IconImageSequenceMacro","BluePaletteColorLookupTableData",
00230 verbose,log,dict,
00231 Condition_PhotometricInterpretationNeedsPalette,
00232 false,
00233 list,parentlist,rootlist,
00234 0,0)) success=false;
00235
00236 { Attribute *a = (*list)[TagFromName(ICCProfile)]; if (a) a->setUsed(); }
00237 if (! verifyType3
00238 (ICCProfile,
00239 "IconImageSequenceMacro","ICCProfile",
00240 verbose,log,dict,
00241 0,0)) success=false;
00242
00243 return success;
00244 }
00245
00246 bool
00247 Macro_CodeSequenceMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
00248 {
00249 const char *module = "CodeSequenceMacro";
00250 (void)module;
00251 (void)list;
00252 (void)verbose;
00253 (void)log;
00254 (void)dict;
00255 Assert(list);
00256 Assert(dict);
00257 AttributeList *parentlist=0;
00258 AttributeList *rootlist=list;
00259
00260 bool success=true;
00261
00262 if (verbose)
00263 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
00264
00265 { Attribute *a = (*list)[TagFromName(CodeValue)]; if (a) a->setUsed(); }
00266 if (! verifyType1
00267 (CodeValue,
00268 "CodeSequenceMacro","CodeValue",
00269 verbose,log,dict,
00270 0,0)) success=false;
00271
00272
00273 if (Condition_CodeValueIllegalOrDeprecated(list,parentlist,rootlist)) {
00274 log << EMsgDCNull() << "Code Value is illegal or deprecated - attribute <CodeValue>"
00275 << " = <" << (const char *)AttributeValue((*list)[TagFromName(CodeValue)],"") << ">"
00276 << endl;
00277 }
00278
00279 { Attribute *a = (*list)[TagFromName(CodingSchemeDesignator)]; if (a) a->setUsed(); }
00280 if (! verifyType1
00281 (CodingSchemeDesignator,
00282 "CodeSequenceMacro","CodingSchemeDesignator",
00283 verbose,log,dict,
00284 0,0)) success=false;
00285
00286 if (CodingSchemeDesignator) CodingSchemeDesignator->verifyDefinedTerms(
00287 StringValueDescription_MiscellaneousCodingSchemeDesignators,
00288 verbose,log,dict,-1);
00289
00290 { Attribute *a = (*list)[TagFromName(CodingSchemeVersion)]; if (a) a->setUsed(); }
00291 if (! verifyType1C
00292 (CodingSchemeVersion,
00293 "CodeSequenceMacro","CodingSchemeVersion",
00294 verbose,log,dict,
00295 Condition_CodingSchemeVersionRequired,
00296 false,
00297 list,parentlist,rootlist,
00298 0,0)) success=false;
00299
00300 { Attribute *a = (*list)[TagFromName(CodeMeaning)]; if (a) a->setUsed(); }
00301 if (! verifyType1
00302 (CodeMeaning,
00303 "CodeSequenceMacro","CodeMeaning",
00304 verbose,log,dict,
00305 0,0)) success=false;
00306
00307 { Attribute *a = (*list)[TagFromName(ContextIdentifier)]; if (a) a->setUsed(); }
00308 if (! verifyType3
00309 (ContextIdentifier,
00310 "CodeSequenceMacro","ContextIdentifier",
00311 verbose,log,dict,
00312 0,0)) success=false;
00313
00314 { Attribute *a = (*list)[TagFromName(ContextUID)]; if (a) a->setUsed(); }
00315 if (! verifyType3
00316 (ContextUID,
00317 "CodeSequenceMacro","ContextUID",
00318 verbose,log,dict,
00319 0,0)) success=false;
00320
00321 { Attribute *a = (*list)[TagFromName(MappingResource)]; if (a) a->setUsed(); }
00322 if (! verifyType1C
00323 (MappingResource,
00324 "CodeSequenceMacro","MappingResource",
00325 verbose,log,dict,
00326 Condition_ContextIdentifierIsPresent,
00327 false,
00328 list,parentlist,rootlist,
00329 0,0)) success=false;
00330
00331 { Attribute *a = (*list)[TagFromName(ContextGroupVersion)]; if (a) a->setUsed(); }
00332 if (! verifyType1C
00333 (ContextGroupVersion,
00334 "CodeSequenceMacro","ContextGroupVersion",
00335 verbose,log,dict,
00336 Condition_ContextIdentifierIsPresent,
00337 false,
00338 list,parentlist,rootlist,
00339 0,0)) success=false;
00340
00341 { Attribute *a = (*list)[TagFromName(ContextGroupExtensionFlag)]; if (a) a->setUsed(); }
00342 if (! verifyType3
00343 (ContextGroupExtensionFlag,
00344 "CodeSequenceMacro","ContextGroupExtensionFlag",
00345 verbose,log,dict,
00346 0,0)) success=false;
00347
00348 if (ContextGroupExtensionFlag && !ContextGroupExtensionFlag->verifyEnumValues(
00349 StringValueDescription_YesNoLetter,
00350 verbose,log,dict,-1)) success=false;
00351
00352 { Attribute *a = (*list)[TagFromName(ContextGroupLocalVersion)]; if (a) a->setUsed(); }
00353 if (! verifyType1C
00354 (ContextGroupLocalVersion,
00355 "CodeSequenceMacro","ContextGroupLocalVersion",
00356 verbose,log,dict,
00357 Condition_ExtendedCodingScheme,
00358 false,
00359 list,parentlist,rootlist,
00360 0,0)) success=false;
00361
00362 { Attribute *a = (*list)[TagFromName(ContextGroupExtensionCreatorUID)]; if (a) a->setUsed(); }
00363 if (! verifyType1C
00364 (ContextGroupExtensionCreatorUID,
00365 "CodeSequenceMacro","ContextGroupExtensionCreatorUID",
00366 verbose,log,dict,
00367 Condition_ExtendedCodingScheme,
00368 false,
00369 list,parentlist,rootlist,
00370 0,0)) success=false;
00371
00372 return success;
00373 }
00374
00375 bool
00376 Macro_CodeSequenceMeaningOptionalMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
00377 {
00378 const char *module = "CodeSequenceMeaningOptionalMacro";
00379 (void)module;
00380 (void)list;
00381 (void)verbose;
00382 (void)log;
00383 (void)dict;
00384 Assert(list);
00385 Assert(dict);
00386 AttributeList *parentlist=0;
00387 AttributeList *rootlist=list;
00388
00389 bool success=true;
00390
00391 if (verbose)
00392 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
00393
00394 { Attribute *a = (*list)[TagFromName(CodeValue)]; if (a) a->setUsed(); }
00395 if (! verifyType1
00396 (CodeValue,
00397 "CodeSequenceMeaningOptionalMacro","CodeValue",
00398 verbose,log,dict,
00399 0,0)) success=false;
00400
00401
00402 if (Condition_CodeValueIllegalOrDeprecated(list,parentlist,rootlist)) {
00403 log << EMsgDCNull() << "Code Value is illegal or deprecated - attribute <CodeValue>"
00404 << " = <" << (const char *)AttributeValue((*list)[TagFromName(CodeValue)],"") << ">"
00405 << endl;
00406 }
00407
00408 { Attribute *a = (*list)[TagFromName(CodingSchemeDesignator)]; if (a) a->setUsed(); }
00409 if (! verifyType1
00410 (CodingSchemeDesignator,
00411 "CodeSequenceMeaningOptionalMacro","CodingSchemeDesignator",
00412 verbose,log,dict,
00413 0,0)) success=false;
00414
00415 if (CodingSchemeDesignator) CodingSchemeDesignator->verifyDefinedTerms(
00416 StringValueDescription_MiscellaneousCodingSchemeDesignators,
00417 verbose,log,dict,-1);
00418
00419 { Attribute *a = (*list)[TagFromName(CodingSchemeVersion)]; if (a) a->setUsed(); }
00420 if (! verifyType1C
00421 (CodingSchemeVersion,
00422 "CodeSequenceMeaningOptionalMacro","CodingSchemeVersion",
00423 verbose,log,dict,
00424 Condition_CodingSchemeVersionRequired,
00425 false,
00426 list,parentlist,rootlist,
00427 0,0)) success=false;
00428
00429 { Attribute *a = (*list)[TagFromName(CodeMeaning)]; if (a) a->setUsed(); }
00430 if (! verifyType3
00431 (CodeMeaning,
00432 "CodeSequenceMeaningOptionalMacro","CodeMeaning",
00433 verbose,log,dict,
00434 0,0)) success=false;
00435
00436
00437 if (Condition_CodeMeaningEmptyOrNotPresent(list,parentlist,rootlist)) {
00438 log << WMsgDCNull() << "Code Meaning is missing or empty, which is legal but undesirable - attribute <CodeMeaning>"
00439 << endl;
00440 }
00441
00442 { Attribute *a = (*list)[TagFromName(ContextIdentifier)]; if (a) a->setUsed(); }
00443 if (! verifyType3
00444 (ContextIdentifier,
00445 "CodeSequenceMeaningOptionalMacro","ContextIdentifier",
00446 verbose,log,dict,
00447 0,0)) success=false;
00448
00449 { Attribute *a = (*list)[TagFromName(ContextUID)]; if (a) a->setUsed(); }
00450 if (! verifyType3
00451 (ContextUID,
00452 "CodeSequenceMeaningOptionalMacro","ContextUID",
00453 verbose,log,dict,
00454 0,0)) success=false;
00455
00456 { Attribute *a = (*list)[TagFromName(MappingResource)]; if (a) a->setUsed(); }
00457 if (! verifyType1C
00458 (MappingResource,
00459 "CodeSequenceMeaningOptionalMacro","MappingResource",
00460 verbose,log,dict,
00461 Condition_ContextIdentifierIsPresent,
00462 false,
00463 list,parentlist,rootlist,
00464 0,0)) success=false;
00465
00466 { Attribute *a = (*list)[TagFromName(ContextGroupVersion)]; if (a) a->setUsed(); }
00467 if (! verifyType1C
00468 (ContextGroupVersion,
00469 "CodeSequenceMeaningOptionalMacro","ContextGroupVersion",
00470 verbose,log,dict,
00471 Condition_ContextIdentifierIsPresent,
00472 false,
00473 list,parentlist,rootlist,
00474 0,0)) success=false;
00475
00476 { Attribute *a = (*list)[TagFromName(ContextGroupExtensionFlag)]; if (a) a->setUsed(); }
00477 if (! verifyType3
00478 (ContextGroupExtensionFlag,
00479 "CodeSequenceMeaningOptionalMacro","ContextGroupExtensionFlag",
00480 verbose,log,dict,
00481 0,0)) success=false;
00482
00483 if (ContextGroupExtensionFlag && !ContextGroupExtensionFlag->verifyEnumValues(
00484 StringValueDescription_YesNoLetter,
00485 verbose,log,dict,-1)) success=false;
00486
00487 { Attribute *a = (*list)[TagFromName(ContextGroupLocalVersion)]; if (a) a->setUsed(); }
00488 if (! verifyType1C
00489 (ContextGroupLocalVersion,
00490 "CodeSequenceMeaningOptionalMacro","ContextGroupLocalVersion",
00491 verbose,log,dict,
00492 Condition_ExtendedCodingScheme,
00493 false,
00494 list,parentlist,rootlist,
00495 0,0)) success=false;
00496
00497 { Attribute *a = (*list)[TagFromName(ContextGroupExtensionCreatorUID)]; if (a) a->setUsed(); }
00498 if (! verifyType1C
00499 (ContextGroupExtensionCreatorUID,
00500 "CodeSequenceMeaningOptionalMacro","ContextGroupExtensionCreatorUID",
00501 verbose,log,dict,
00502 Condition_ExtendedCodingScheme,
00503 false,
00504 list,parentlist,rootlist,
00505 0,0)) success=false;
00506
00507 return success;
00508 }
00509
00510 bool
00511 Macro_CodeSequence99SDMMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
00512 {
00513 const char *module = "CodeSequence99SDMMacro";
00514 (void)module;
00515 (void)list;
00516 (void)verbose;
00517 (void)log;
00518 (void)dict;
00519 Assert(list);
00520 Assert(dict);
00521 AttributeList *parentlist=0;
00522 AttributeList *rootlist=list;
00523
00524 bool success=true;
00525
00526 if (verbose)
00527 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
00528
00529 { Attribute *a = (*list)[TagFromName(CodeValue)]; if (a) a->setUsed(); }
00530 if (! verifyType1
00531 (CodeValue,
00532 "CodeSequence99SDMMacro","CodeValue",
00533 verbose,log,dict,
00534 0,0)) success=false;
00535
00536
00537 if (Condition_CodeValueIllegalOrDeprecated(list,parentlist,rootlist)) {
00538 log << EMsgDCNull() << "Code Value is illegal or deprecated - attribute <CodeValue>"
00539 << " = <" << (const char *)AttributeValue((*list)[TagFromName(CodeValue)],"") << ">"
00540 << endl;
00541 }
00542
00543 { Attribute *a = (*list)[TagFromName(CodingSchemeDesignator)]; if (a) a->setUsed(); }
00544 if (! verifyType1
00545 (CodingSchemeDesignator,
00546 "CodeSequence99SDMMacro","CodingSchemeDesignator",
00547 verbose,log,dict,
00548 0,0)) success=false;
00549
00550 if (CodingSchemeDesignator && !CodingSchemeDesignator->verifyEnumValues(
00551 StringValueDescription_CodingSchemeDesignatorForSNOMEDDICOMMicroglossary,
00552 verbose,log,dict,-1)) success=false;
00553
00554 { Attribute *a = (*list)[TagFromName(CodingSchemeVersion)]; if (a) a->setUsed(); }
00555 if (! verifyType1C
00556 (CodingSchemeVersion,
00557 "CodeSequence99SDMMacro","CodingSchemeVersion",
00558 verbose,log,dict,
00559 Condition_CodingSchemeVersionRequired,
00560 false,
00561 list,parentlist,rootlist,
00562 0,0)) success=false;
00563
00564 { Attribute *a = (*list)[TagFromName(CodeMeaning)]; if (a) a->setUsed(); }
00565 if (! verifyType3
00566 (CodeMeaning,
00567 "CodeSequence99SDMMacro","CodeMeaning",
00568 verbose,log,dict,
00569 0,0)) success=false;
00570
00571
00572 if (Condition_CodeMeaningEmptyOrNotPresent(list,parentlist,rootlist)) {
00573 log << WMsgDCNull() << "Code Meaning is missing or empty, which is legal but undesirable - attribute <CodeMeaning>"
00574 << endl;
00575 }
00576
00577 { Attribute *a = (*list)[TagFromName(ContextIdentifier)]; if (a) a->setUsed(); }
00578 if (! verifyType3
00579 (ContextIdentifier,
00580 "CodeSequence99SDMMacro","ContextIdentifier",
00581 verbose,log,dict,
00582 0,0)) success=false;
00583
00584 { Attribute *a = (*list)[TagFromName(ContextUID)]; if (a) a->setUsed(); }
00585 if (! verifyType3
00586 (ContextUID,
00587 "CodeSequence99SDMMacro","ContextUID",
00588 verbose,log,dict,
00589 0,0)) success=false;
00590
00591 { Attribute *a = (*list)[TagFromName(MappingResource)]; if (a) a->setUsed(); }
00592 if (! verifyType1C
00593 (MappingResource,
00594 "CodeSequence99SDMMacro","MappingResource",
00595 verbose,log,dict,
00596 Condition_ContextIdentifierIsPresent,
00597 false,
00598 list,parentlist,rootlist,
00599 0,0)) success=false;
00600
00601 { Attribute *a = (*list)[TagFromName(ContextGroupVersion)]; if (a) a->setUsed(); }
00602 if (! verifyType1C
00603 (ContextGroupVersion,
00604 "CodeSequence99SDMMacro","ContextGroupVersion",
00605 verbose,log,dict,
00606 Condition_ContextIdentifierIsPresent,
00607 false,
00608 list,parentlist,rootlist,
00609 0,0)) success=false;
00610
00611 { Attribute *a = (*list)[TagFromName(ContextGroupExtensionFlag)]; if (a) a->setUsed(); }
00612 if (! verifyType3
00613 (ContextGroupExtensionFlag,
00614 "CodeSequence99SDMMacro","ContextGroupExtensionFlag",
00615 verbose,log,dict,
00616 0,0)) success=false;
00617
00618 if (ContextGroupExtensionFlag && !ContextGroupExtensionFlag->verifyEnumValues(
00619 StringValueDescription_YesNoLetter,
00620 verbose,log,dict,-1)) success=false;
00621
00622 { Attribute *a = (*list)[TagFromName(ContextGroupLocalVersion)]; if (a) a->setUsed(); }
00623 if (! verifyType1C
00624 (ContextGroupLocalVersion,
00625 "CodeSequence99SDMMacro","ContextGroupLocalVersion",
00626 verbose,log,dict,
00627 Condition_ExtendedCodingScheme,
00628 false,
00629 list,parentlist,rootlist,
00630 0,0)) success=false;
00631
00632 { Attribute *a = (*list)[TagFromName(ContextGroupExtensionCreatorUID)]; if (a) a->setUsed(); }
00633 if (! verifyType1C
00634 (ContextGroupExtensionCreatorUID,
00635 "CodeSequence99SDMMacro","ContextGroupExtensionCreatorUID",
00636 verbose,log,dict,
00637 Condition_ExtendedCodingScheme,
00638 false,
00639 list,parentlist,rootlist,
00640 0,0)) success=false;
00641
00642 return success;
00643 }
00644
00645 bool
00646 Macro_PersonIdentificationMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
00647 {
00648 const char *module = "PersonIdentificationMacro";
00649 (void)module;
00650 (void)list;
00651 (void)verbose;
00652 (void)log;
00653 (void)dict;
00654 Assert(list);
00655 Assert(dict);
00656 AttributeList *parentlist=0;
00657 AttributeList *rootlist=list;
00658
00659 bool success=true;
00660
00661 if (verbose)
00662 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
00663
00664 { Attribute *a = (*list)[TagFromName(PersonIdentificationCodeSequence)]; if (a) a->setUsed(); }
00665 if (! verifyType1
00666 (PersonIdentificationCodeSequence,
00667 "PersonIdentificationMacro","PersonIdentificationCodeSequence",
00668 verbose,log,dict,
00669 1,VMUNLIMITED)) success=false;
00670 if (PersonIdentificationCodeSequence && strcmp(PersonIdentificationCodeSequence->getVR(),"SQ") == 0) {
00671 AttributeList **array;
00672 int n;
00673 if ((n=PersonIdentificationCodeSequence->getLists(&array)) > 0) {
00674 int i; for (i=0; i<n; ++i) {
00675 AttributeList *parentlist=list;
00676 AttributeList *list=array[i];
00677 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
00678
00679 }
00680 }
00681 }
00682 { Attribute *a = (*list)[TagFromName(PersonAddress)]; if (a) a->setUsed(); }
00683 if (! verifyType3
00684 (PersonAddress,
00685 "PersonIdentificationMacro","PersonAddress",
00686 verbose,log,dict,
00687 0,0)) success=false;
00688
00689 { Attribute *a = (*list)[TagFromName(PersonTelephoneNumbers)]; if (a) a->setUsed(); }
00690 if (! verifyType3
00691 (PersonTelephoneNumbers,
00692 "PersonIdentificationMacro","PersonTelephoneNumbers",
00693 verbose,log,dict,
00694 0,0)) success=false;
00695
00696 { Attribute *a = (*list)[TagFromName(InstitutionName)]; if (a) a->setUsed(); }
00697 if (! verifyType1C
00698 (InstitutionName,
00699 "PersonIdentificationMacro","InstitutionName",
00700 verbose,log,dict,
00701 Condition_InstitutionCodeSequenceNotPresent,
00702 false,
00703 list,parentlist,rootlist,
00704 0,0)) success=false;
00705
00706 { Attribute *a = (*list)[TagFromName(InstitutionAddress)]; if (a) a->setUsed(); }
00707 if (! verifyType3
00708 (InstitutionAddress,
00709 "PersonIdentificationMacro","InstitutionAddress",
00710 verbose,log,dict,
00711 0,0)) success=false;
00712
00713 { Attribute *a = (*list)[TagFromName(InstitutionCodeSequence)]; if (a) a->setUsed(); }
00714 if (! verifyType1C
00715 (InstitutionCodeSequence,
00716 "PersonIdentificationMacro","InstitutionCodeSequence",
00717 verbose,log,dict,
00718 Condition_InstitutionNameNotPresent,
00719 false,
00720 list,parentlist,rootlist,
00721 1,1)) success=false;
00722 if (InstitutionCodeSequence && strcmp(InstitutionCodeSequence->getVR(),"SQ") == 0) {
00723 AttributeList **array;
00724 int n;
00725 if ((n=InstitutionCodeSequence->getLists(&array)) > 0) {
00726 int i; for (i=0; i<n; ++i) {
00727 AttributeList *parentlist=list;
00728 AttributeList *list=array[i];
00729 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
00730
00731 }
00732 }
00733 }
00734 return success;
00735 }
00736
00737 bool
00738 Macro_ContentItemMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
00739 {
00740 const char *module = "ContentItemMacro";
00741 (void)module;
00742 (void)list;
00743 (void)verbose;
00744 (void)log;
00745 (void)dict;
00746 Assert(list);
00747 Assert(dict);
00748 AttributeList *parentlist=0;
00749 AttributeList *rootlist=list;
00750
00751 bool success=true;
00752
00753 if (verbose)
00754 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
00755
00756 { Attribute *a = (*list)[TagFromName(ValueType)]; if (a) a->setUsed(); }
00757 if (! verifyType1
00758 (ValueType,
00759 "ContentItemMacro","ValueType",
00760 verbose,log,dict,
00761 0,0)) success=false;
00762
00763 if (ValueType) ValueType->verifyDefinedTerms(
00764 StringValueDescription_ContentItemValueTypes,
00765 verbose,log,dict,-1);
00766
00767 { Attribute *a = (*list)[TagFromName(ConceptNameCodeSequence)]; if (a) a->setUsed(); }
00768 if (! verifyType1
00769 (ConceptNameCodeSequence,
00770 "ContentItemMacro","ConceptNameCodeSequence",
00771 verbose,log,dict,
00772 1,1)) success=false;
00773 if (ConceptNameCodeSequence && strcmp(ConceptNameCodeSequence->getVR(),"SQ") == 0) {
00774 AttributeList **array;
00775 int n;
00776 if ((n=ConceptNameCodeSequence->getLists(&array)) > 0) {
00777 int i; for (i=0; i<n; ++i) {
00778 AttributeList *parentlist=list;
00779 AttributeList *list=array[i];
00780 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
00781
00782 }
00783 }
00784 }
00785 { Attribute *a = (*list)[TagFromName(DateTime)]; if (a) a->setUsed(); }
00786 if (! verifyType1C
00787 (DateTime,
00788 "ContentItemMacro","DateTime",
00789 verbose,log,dict,
00790 Condition_ValueTypeIsDateTime,
00791 false,
00792 list,parentlist,rootlist,
00793 0,0)) success=false;
00794
00795 { Attribute *a = (*list)[TagFromName(Date)]; if (a) a->setUsed(); }
00796 if (! verifyType1C
00797 (Date,
00798 "ContentItemMacro","Date",
00799 verbose,log,dict,
00800 Condition_ValueTypeIsDate,
00801 false,
00802 list,parentlist,rootlist,
00803 0,0)) success=false;
00804
00805 { Attribute *a = (*list)[TagFromName(Time)]; if (a) a->setUsed(); }
00806 if (! verifyType1C
00807 (Time,
00808 "ContentItemMacro","Time",
00809 verbose,log,dict,
00810 Condition_ValueTypeIsTime,
00811 false,
00812 list,parentlist,rootlist,
00813 0,0)) success=false;
00814
00815 { Attribute *a = (*list)[TagFromName(PersonName)]; if (a) a->setUsed(); }
00816 if (! verifyType1C
00817 (PersonName,
00818 "ContentItemMacro","PersonName",
00819 verbose,log,dict,
00820 Condition_ValueTypeIsPersonName,
00821 false,
00822 list,parentlist,rootlist,
00823 0,0)) success=false;
00824
00825 { Attribute *a = (*list)[TagFromName(UID)]; if (a) a->setUsed(); }
00826 if (! verifyType1C
00827 (UID,
00828 "ContentItemMacro","UID",
00829 verbose,log,dict,
00830 Condition_ValueTypeIsUID,
00831 false,
00832 list,parentlist,rootlist,
00833 0,0)) success=false;
00834
00835 { Attribute *a = (*list)[TagFromName(TextValue)]; if (a) a->setUsed(); }
00836 if (! verifyType1C
00837 (TextValue,
00838 "ContentItemMacro","TextValue",
00839 verbose,log,dict,
00840 Condition_ValueTypeIsText,
00841 false,
00842 list,parentlist,rootlist,
00843 0,0)) success=false;
00844
00845 { Attribute *a = (*list)[TagFromName(ConceptCodeSequence)]; if (a) a->setUsed(); }
00846 if (! verifyType1C
00847 (ConceptCodeSequence,
00848 "ContentItemMacro","ConceptCodeSequence",
00849 verbose,log,dict,
00850 Condition_ValueTypeIsCode,
00851 false,
00852 list,parentlist,rootlist,
00853 1,1)) success=false;
00854 if (ConceptCodeSequence && strcmp(ConceptCodeSequence->getVR(),"SQ") == 0) {
00855 AttributeList **array;
00856 int n;
00857 if ((n=ConceptCodeSequence->getLists(&array)) > 0) {
00858 int i; for (i=0; i<n; ++i) {
00859 AttributeList *parentlist=list;
00860 AttributeList *list=array[i];
00861 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
00862
00863 }
00864 }
00865 }
00866 { Attribute *a = (*list)[TagFromName(NumericValue)]; if (a) a->setUsed(); }
00867 if (! verifyType1C
00868 (NumericValue,
00869 "ContentItemMacro","NumericValue",
00870 verbose,log,dict,
00871 Condition_ValueTypeIsNumeric,
00872 false,
00873 list,parentlist,rootlist,
00874 0,0)) success=false;
00875
00876 { Attribute *a = (*list)[TagFromName(MeasurementUnitsCodeSequence)]; if (a) a->setUsed(); }
00877 if (! verifyType1C
00878 (MeasurementUnitsCodeSequence,
00879 "ContentItemMacro","MeasurementUnitsCodeSequence",
00880 verbose,log,dict,
00881 Condition_ValueTypeIsNumeric,
00882 false,
00883 list,parentlist,rootlist,
00884 1,1)) success=false;
00885 if (MeasurementUnitsCodeSequence && strcmp(MeasurementUnitsCodeSequence->getVR(),"SQ") == 0) {
00886 AttributeList **array;
00887 int n;
00888 if ((n=MeasurementUnitsCodeSequence->getLists(&array)) > 0) {
00889 int i; for (i=0; i<n; ++i) {
00890 AttributeList *parentlist=list;
00891 AttributeList *list=array[i];
00892 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
00893
00894 }
00895 }
00896 }
00897 return success;
00898 }
00899
00900 bool
00901 Macro_ImageSOPInstanceReferenceMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
00902 {
00903 const char *module = "ImageSOPInstanceReferenceMacro";
00904 (void)module;
00905 (void)list;
00906 (void)verbose;
00907 (void)log;
00908 (void)dict;
00909 Assert(list);
00910 Assert(dict);
00911 AttributeList *parentlist=0;
00912 AttributeList *rootlist=list;
00913
00914 bool success=true;
00915
00916 if (verbose)
00917 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
00918
00919 if (Macro_SOPInstanceReferenceMacro(list).verify(list,verbose,log,dict)) success=false;
00920
00921 { Attribute *a = (*list)[TagFromName(ReferencedFrameNumber)]; if (a) a->setUsed(); }
00922 if (! verifyType1C
00923 (ReferencedFrameNumber,
00924 "ImageSOPInstanceReferenceMacro","ReferencedFrameNumber",
00925 verbose,log,dict,
00926 0,
00927 false,
00928 list,parentlist,rootlist,
00929 0,0)) success=false;
00930
00931 if (ReferencedFrameNumber && !ReferencedFrameNumber->verifyNotZero(
00932 verbose,log,dict,-1,false)) success=false;
00933
00934 { Attribute *a = (*list)[TagFromName(ReferencedSegmentNumber)]; if (a) a->setUsed(); }
00935 if (! verifyType1C
00936 (ReferencedSegmentNumber,
00937 "ImageSOPInstanceReferenceMacro","ReferencedSegmentNumber",
00938 verbose,log,dict,
00939 0,
00940 false,
00941 list,parentlist,rootlist,
00942 0,0)) success=false;
00943
00944 if (ReferencedSegmentNumber && !ReferencedSegmentNumber->verifyNotZero(
00945 verbose,log,dict,-1,false)) success=false;
00946
00947
00948 if (Condition_ReferencedFrameNumberAndReferencedSegmentNumberPresent(list,parentlist,rootlist)) {
00949 log << EMsgDCNull() << "May not be present when ReferencedFrameNumber is present - attribute <ReferencedSegmentNumber>"
00950 << endl;
00951 }
00952
00953 return success;
00954 }
00955
00956 bool
00957 Macro_SeriesAndInstanceReferenceMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
00958 {
00959 const char *module = "SeriesAndInstanceReferenceMacro";
00960 (void)module;
00961 (void)list;
00962 (void)verbose;
00963 (void)log;
00964 (void)dict;
00965 Assert(list);
00966 Assert(dict);
00967 AttributeList *parentlist=0;
00968 AttributeList *rootlist=list;
00969
00970 bool success=true;
00971
00972 if (verbose)
00973 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
00974
00975 { Attribute *a = (*list)[TagFromName(ReferencedSeriesSequence)]; if (a) a->setUsed(); }
00976 if (! verifyType1
00977 (ReferencedSeriesSequence,
00978 "SeriesAndInstanceReferenceMacro","ReferencedSeriesSequence",
00979 verbose,log,dict,
00980 1,VMUNLIMITED)) success=false;
00981 if (ReferencedSeriesSequence && strcmp(ReferencedSeriesSequence->getVR(),"SQ") == 0) {
00982 AttributeList **array;
00983 int n;
00984 if ((n=ReferencedSeriesSequence->getLists(&array)) > 0) {
00985 int i; for (i=0; i<n; ++i) {
00986 AttributeList *parentlist=list;
00987 AttributeList *list=array[i];
00988 Attribute *SeriesInstanceUID = (*list)[TagFromName(SeriesInstanceUID)];
00989 { Attribute *a = (*list)[TagFromName(SeriesInstanceUID)]; if (a) a->setUsed(); }
00990 if (! verifyType1
00991 (SeriesInstanceUID,
00992 "SeriesAndInstanceReferenceMacro","SeriesInstanceUID",
00993 verbose,log,dict,
00994 0,0)) success=false;
00995
00996 Attribute *ReferencedInstanceSequence = (*list)[TagFromName(ReferencedInstanceSequence)];
00997 { Attribute *a = (*list)[TagFromName(ReferencedInstanceSequence)]; if (a) a->setUsed(); }
00998 if (! verifyType1
00999 (ReferencedInstanceSequence,
01000 "SeriesAndInstanceReferenceMacro","ReferencedInstanceSequence",
01001 verbose,log,dict,
01002 1,VMUNLIMITED)) success=false;
01003 if (ReferencedInstanceSequence && strcmp(ReferencedInstanceSequence->getVR(),"SQ") == 0) {
01004 AttributeList **array;
01005 int n;
01006 if ((n=ReferencedInstanceSequence->getLists(&array)) > 0) {
01007 int i; for (i=0; i<n; ++i) {
01008 AttributeList *parentlist=list;
01009 AttributeList *list=array[i];
01010 if (Macro_SOPInstanceReferenceMacro(list).verify(list,verbose,log,dict)) success=false;
01011
01012 }
01013 }
01014 }
01015 }
01016 }
01017 }
01018 return success;
01019 }
01020
01021 bool
01022 Macro_PrimaryAnatomicStructureMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
01023 {
01024 const char *module = "PrimaryAnatomicStructureMacro";
01025 (void)module;
01026 (void)list;
01027 (void)verbose;
01028 (void)log;
01029 (void)dict;
01030 Assert(list);
01031 Assert(dict);
01032 AttributeList *parentlist=0;
01033 AttributeList *rootlist=list;
01034
01035 bool success=true;
01036
01037 if (verbose)
01038 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
01039
01040 { Attribute *a = (*list)[TagFromName(PrimaryAnatomicStructureSequence)]; if (a) a->setUsed(); }
01041 if (! verifyType3
01042 (PrimaryAnatomicStructureSequence,
01043 "PrimaryAnatomicStructureMacro","PrimaryAnatomicStructureSequence",
01044 verbose,log,dict,
01045 1,VMUNLIMITED)) success=false;
01046 if (PrimaryAnatomicStructureSequence && strcmp(PrimaryAnatomicStructureSequence->getVR(),"SQ") == 0) {
01047 AttributeList **array;
01048 int n;
01049 if ((n=PrimaryAnatomicStructureSequence->getLists(&array)) > 0) {
01050 int i; for (i=0; i<n; ++i) {
01051 AttributeList *parentlist=list;
01052 AttributeList *list=array[i];
01053 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
01054
01055 Attribute *PrimaryAnatomicStructureModifierSequence = (*list)[TagFromName(PrimaryAnatomicStructureModifierSequence)];
01056 { Attribute *a = (*list)[TagFromName(PrimaryAnatomicStructureModifierSequence)]; if (a) a->setUsed(); }
01057 if (! verifyType3
01058 (PrimaryAnatomicStructureModifierSequence,
01059 "PrimaryAnatomicStructureMacro","PrimaryAnatomicStructureModifierSequence",
01060 verbose,log,dict,
01061 1,VMUNLIMITED)) success=false;
01062 if (PrimaryAnatomicStructureModifierSequence && strcmp(PrimaryAnatomicStructureModifierSequence->getVR(),"SQ") == 0) {
01063 AttributeList **array;
01064 int n;
01065 if ((n=PrimaryAnatomicStructureModifierSequence->getLists(&array)) > 0) {
01066 int i; for (i=0; i<n; ++i) {
01067 AttributeList *parentlist=list;
01068 AttributeList *list=array[i];
01069 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
01070
01071 }
01072 }
01073 }
01074 }
01075 }
01076 }
01077 return success;
01078 }
01079
01080 bool
01081 Macro_GeneralAnatomyMandatoryMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
01082 {
01083 const char *module = "GeneralAnatomyMandatoryMacro";
01084 (void)module;
01085 (void)list;
01086 (void)verbose;
01087 (void)log;
01088 (void)dict;
01089 Assert(list);
01090 Assert(dict);
01091 AttributeList *parentlist=0;
01092 AttributeList *rootlist=list;
01093
01094 bool success=true;
01095
01096 if (verbose)
01097 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
01098
01099 { Attribute *a = (*list)[TagFromName(AnatomicRegionSequence)]; if (a) a->setUsed(); }
01100 if (! verifyType1
01101 (AnatomicRegionSequence,
01102 "GeneralAnatomyMandatoryMacro","AnatomicRegionSequence",
01103 verbose,log,dict,
01104 1,1)) success=false;
01105 if (AnatomicRegionSequence && strcmp(AnatomicRegionSequence->getVR(),"SQ") == 0) {
01106 AttributeList **array;
01107 int n;
01108 if ((n=AnatomicRegionSequence->getLists(&array)) > 0) {
01109 int i; for (i=0; i<n; ++i) {
01110 AttributeList *parentlist=list;
01111 AttributeList *list=array[i];
01112 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
01113
01114 Attribute *AnatomicRegionModifierSequence = (*list)[TagFromName(AnatomicRegionModifierSequence)];
01115 { Attribute *a = (*list)[TagFromName(AnatomicRegionModifierSequence)]; if (a) a->setUsed(); }
01116 if (! verifyType3
01117 (AnatomicRegionModifierSequence,
01118 "GeneralAnatomyMandatoryMacro","AnatomicRegionModifierSequence",
01119 verbose,log,dict,
01120 1,VMUNLIMITED)) success=false;
01121 if (AnatomicRegionModifierSequence && strcmp(AnatomicRegionModifierSequence->getVR(),"SQ") == 0) {
01122 AttributeList **array;
01123 int n;
01124 if ((n=AnatomicRegionModifierSequence->getLists(&array)) > 0) {
01125 int i; for (i=0; i<n; ++i) {
01126 AttributeList *parentlist=list;
01127 AttributeList *list=array[i];
01128 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
01129
01130 }
01131 }
01132 }
01133 }
01134 }
01135 }
01136 if (Macro_PrimaryAnatomicStructureMacro(list).verify(list,verbose,log,dict)) success=false;
01137
01138 { Attribute *a = (*list)[TagFromName(AnatomicRegionModifierSequence)]; if (a) a->setUsed(); }
01139 if (! verifyType1C
01140 (AnatomicRegionModifierSequence,
01141 "GeneralAnatomyMandatoryMacro","AnatomicRegionModifierSequence",
01142 verbose,log,dict,
01143 Condition_Never,
01144 false,
01145 list,parentlist,rootlist,
01146 1,VMUNLIMITED)) success=false;
01147 if (AnatomicRegionModifierSequence && strcmp(AnatomicRegionModifierSequence->getVR(),"SQ") == 0) {
01148 AttributeList **array;
01149 int n;
01150 if ((n=AnatomicRegionModifierSequence->getLists(&array)) > 0) {
01151 int i; for (i=0; i<n; ++i) {
01152 AttributeList *parentlist=list;
01153 AttributeList *list=array[i];
01154 }
01155 }
01156 }
01157 { Attribute *a = (*list)[TagFromName(PrimaryAnatomicStructureModifierSequence)]; if (a) a->setUsed(); }
01158 if (! verifyType1C
01159 (PrimaryAnatomicStructureModifierSequence,
01160 "GeneralAnatomyMandatoryMacro","PrimaryAnatomicStructureModifierSequence",
01161 verbose,log,dict,
01162 Condition_Never,
01163 false,
01164 list,parentlist,rootlist,
01165 1,VMUNLIMITED)) success=false;
01166 if (PrimaryAnatomicStructureModifierSequence && strcmp(PrimaryAnatomicStructureModifierSequence->getVR(),"SQ") == 0) {
01167 AttributeList **array;
01168 int n;
01169 if ((n=PrimaryAnatomicStructureModifierSequence->getLists(&array)) > 0) {
01170 int i; for (i=0; i<n; ++i) {
01171 AttributeList *parentlist=list;
01172 AttributeList *list=array[i];
01173 }
01174 }
01175 }
01176 return success;
01177 }
01178
01179 bool
01180 Macro_GeneralAnatomyRequiredMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
01181 {
01182 const char *module = "GeneralAnatomyRequiredMacro";
01183 (void)module;
01184 (void)list;
01185 (void)verbose;
01186 (void)log;
01187 (void)dict;
01188 Assert(list);
01189 Assert(dict);
01190 AttributeList *parentlist=0;
01191 AttributeList *rootlist=list;
01192
01193 bool success=true;
01194
01195 if (verbose)
01196 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
01197
01198 { Attribute *a = (*list)[TagFromName(AnatomicRegionSequence)]; if (a) a->setUsed(); }
01199 if (! verifyType2
01200 (AnatomicRegionSequence,
01201 "GeneralAnatomyRequiredMacro","AnatomicRegionSequence",
01202 verbose,log,dict,
01203 0,1)) success=false;
01204 if (AnatomicRegionSequence && strcmp(AnatomicRegionSequence->getVR(),"SQ") == 0) {
01205 AttributeList **array;
01206 int n;
01207 if ((n=AnatomicRegionSequence->getLists(&array)) > 0) {
01208 int i; for (i=0; i<n; ++i) {
01209 AttributeList *parentlist=list;
01210 AttributeList *list=array[i];
01211 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
01212
01213 Attribute *AnatomicRegionModifierSequence = (*list)[TagFromName(AnatomicRegionModifierSequence)];
01214 { Attribute *a = (*list)[TagFromName(AnatomicRegionModifierSequence)]; if (a) a->setUsed(); }
01215 if (! verifyType3
01216 (AnatomicRegionModifierSequence,
01217 "GeneralAnatomyRequiredMacro","AnatomicRegionModifierSequence",
01218 verbose,log,dict,
01219 1,VMUNLIMITED)) success=false;
01220 if (AnatomicRegionModifierSequence && strcmp(AnatomicRegionModifierSequence->getVR(),"SQ") == 0) {
01221 AttributeList **array;
01222 int n;
01223 if ((n=AnatomicRegionModifierSequence->getLists(&array)) > 0) {
01224 int i; for (i=0; i<n; ++i) {
01225 AttributeList *parentlist=list;
01226 AttributeList *list=array[i];
01227 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
01228
01229 }
01230 }
01231 }
01232 }
01233 }
01234 }
01235 if (Macro_PrimaryAnatomicStructureMacro(list).verify(list,verbose,log,dict)) success=false;
01236
01237 { Attribute *a = (*list)[TagFromName(AnatomicRegionModifierSequence)]; if (a) a->setUsed(); }
01238 if (! verifyType1C
01239 (AnatomicRegionModifierSequence,
01240 "GeneralAnatomyRequiredMacro","AnatomicRegionModifierSequence",
01241 verbose,log,dict,
01242 Condition_Never,
01243 false,
01244 list,parentlist,rootlist,
01245 1,VMUNLIMITED)) success=false;
01246 if (AnatomicRegionModifierSequence && strcmp(AnatomicRegionModifierSequence->getVR(),"SQ") == 0) {
01247 AttributeList **array;
01248 int n;
01249 if ((n=AnatomicRegionModifierSequence->getLists(&array)) > 0) {
01250 int i; for (i=0; i<n; ++i) {
01251 AttributeList *parentlist=list;
01252 AttributeList *list=array[i];
01253 }
01254 }
01255 }
01256 { Attribute *a = (*list)[TagFromName(PrimaryAnatomicStructureModifierSequence)]; if (a) a->setUsed(); }
01257 if (! verifyType1C
01258 (PrimaryAnatomicStructureModifierSequence,
01259 "GeneralAnatomyRequiredMacro","PrimaryAnatomicStructureModifierSequence",
01260 verbose,log,dict,
01261 Condition_Never,
01262 false,
01263 list,parentlist,rootlist,
01264 1,VMUNLIMITED)) success=false;
01265 if (PrimaryAnatomicStructureModifierSequence && strcmp(PrimaryAnatomicStructureModifierSequence->getVR(),"SQ") == 0) {
01266 AttributeList **array;
01267 int n;
01268 if ((n=PrimaryAnatomicStructureModifierSequence->getLists(&array)) > 0) {
01269 int i; for (i=0; i<n; ++i) {
01270 AttributeList *parentlist=list;
01271 AttributeList *list=array[i];
01272 }
01273 }
01274 }
01275 return success;
01276 }
01277
01278 bool
01279 Macro_GeneralAnatomyOptionalMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
01280 {
01281 const char *module = "GeneralAnatomyOptionalMacro";
01282 (void)module;
01283 (void)list;
01284 (void)verbose;
01285 (void)log;
01286 (void)dict;
01287 Assert(list);
01288 Assert(dict);
01289 AttributeList *parentlist=0;
01290 AttributeList *rootlist=list;
01291
01292 bool success=true;
01293
01294 if (verbose)
01295 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
01296
01297 { Attribute *a = (*list)[TagFromName(AnatomicRegionSequence)]; if (a) a->setUsed(); }
01298 if (! verifyType3
01299 (AnatomicRegionSequence,
01300 "GeneralAnatomyOptionalMacro","AnatomicRegionSequence",
01301 verbose,log,dict,
01302 1,1)) success=false;
01303 if (AnatomicRegionSequence && strcmp(AnatomicRegionSequence->getVR(),"SQ") == 0) {
01304 AttributeList **array;
01305 int n;
01306 if ((n=AnatomicRegionSequence->getLists(&array)) > 0) {
01307 int i; for (i=0; i<n; ++i) {
01308 AttributeList *parentlist=list;
01309 AttributeList *list=array[i];
01310 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
01311
01312 Attribute *AnatomicRegionModifierSequence = (*list)[TagFromName(AnatomicRegionModifierSequence)];
01313 { Attribute *a = (*list)[TagFromName(AnatomicRegionModifierSequence)]; if (a) a->setUsed(); }
01314 if (! verifyType3
01315 (AnatomicRegionModifierSequence,
01316 "GeneralAnatomyOptionalMacro","AnatomicRegionModifierSequence",
01317 verbose,log,dict,
01318 1,VMUNLIMITED)) success=false;
01319 if (AnatomicRegionModifierSequence && strcmp(AnatomicRegionModifierSequence->getVR(),"SQ") == 0) {
01320 AttributeList **array;
01321 int n;
01322 if ((n=AnatomicRegionModifierSequence->getLists(&array)) > 0) {
01323 int i; for (i=0; i<n; ++i) {
01324 AttributeList *parentlist=list;
01325 AttributeList *list=array[i];
01326 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
01327
01328 }
01329 }
01330 }
01331 }
01332 }
01333 }
01334 if (Macro_PrimaryAnatomicStructureMacro(list).verify(list,verbose,log,dict)) success=false;
01335
01336 { Attribute *a = (*list)[TagFromName(AnatomicRegionModifierSequence)]; if (a) a->setUsed(); }
01337 if (! verifyType1C
01338 (AnatomicRegionModifierSequence,
01339 "GeneralAnatomyOptionalMacro","AnatomicRegionModifierSequence",
01340 verbose,log,dict,
01341 Condition_Never,
01342 false,
01343 list,parentlist,rootlist,
01344 1,VMUNLIMITED)) success=false;
01345 if (AnatomicRegionModifierSequence && strcmp(AnatomicRegionModifierSequence->getVR(),"SQ") == 0) {
01346 AttributeList **array;
01347 int n;
01348 if ((n=AnatomicRegionModifierSequence->getLists(&array)) > 0) {
01349 int i; for (i=0; i<n; ++i) {
01350 AttributeList *parentlist=list;
01351 AttributeList *list=array[i];
01352 }
01353 }
01354 }
01355 { Attribute *a = (*list)[TagFromName(PrimaryAnatomicStructureModifierSequence)]; if (a) a->setUsed(); }
01356 if (! verifyType1C
01357 (PrimaryAnatomicStructureModifierSequence,
01358 "GeneralAnatomyOptionalMacro","PrimaryAnatomicStructureModifierSequence",
01359 verbose,log,dict,
01360 Condition_Never,
01361 false,
01362 list,parentlist,rootlist,
01363 1,VMUNLIMITED)) success=false;
01364 if (PrimaryAnatomicStructureModifierSequence && strcmp(PrimaryAnatomicStructureModifierSequence->getVR(),"SQ") == 0) {
01365 AttributeList **array;
01366 int n;
01367 if ((n=PrimaryAnatomicStructureModifierSequence->getLists(&array)) > 0) {
01368 int i; for (i=0; i<n; ++i) {
01369 AttributeList *parentlist=list;
01370 AttributeList *list=array[i];
01371 }
01372 }
01373 }
01374 return success;
01375 }
01376
01377 bool
01378 Macro_RequestAttributesMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
01379 {
01380 const char *module = "RequestAttributesMacro";
01381 (void)module;
01382 (void)list;
01383 (void)verbose;
01384 (void)log;
01385 (void)dict;
01386 Assert(list);
01387 Assert(dict);
01388 AttributeList *parentlist=0;
01389 AttributeList *rootlist=list;
01390
01391 bool success=true;
01392
01393 if (verbose)
01394 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
01395
01396 { Attribute *a = (*list)[TagFromName(RequestedProcedureID)]; if (a) a->setUsed(); }
01397 if (! verifyType1C
01398 (RequestedProcedureID,
01399 "RequestAttributesMacro","RequestedProcedureID",
01400 verbose,log,dict,
01401 0,
01402 true,
01403 list,parentlist,rootlist,
01404 0,0)) success=false;
01405
01406 { Attribute *a = (*list)[TagFromName(AccessionNumber)]; if (a) a->setUsed(); }
01407 if (! verifyType3
01408 (AccessionNumber,
01409 "RequestAttributesMacro","AccessionNumber",
01410 verbose,log,dict,
01411 0,0)) success=false;
01412
01413 { Attribute *a = (*list)[TagFromName(IssuerOfAccessionNumberSequence)]; if (a) a->setUsed(); }
01414 if (! verifyType3
01415 (IssuerOfAccessionNumberSequence,
01416 "RequestAttributesMacro","IssuerOfAccessionNumberSequence",
01417 verbose,log,dict,
01418 1,1)) success=false;
01419 if (IssuerOfAccessionNumberSequence && strcmp(IssuerOfAccessionNumberSequence->getVR(),"SQ") == 0) {
01420 AttributeList **array;
01421 int n;
01422 if ((n=IssuerOfAccessionNumberSequence->getLists(&array)) > 0) {
01423 int i; for (i=0; i<n; ++i) {
01424 AttributeList *parentlist=list;
01425 AttributeList *list=array[i];
01426 if (Macro_HL7v2HierarchicDesignatorMacro(list).verify(list,verbose,log,dict)) success=false;
01427
01428 }
01429 }
01430 }
01431 { Attribute *a = (*list)[TagFromName(StudyInstanceUID)]; if (a) a->setUsed(); }
01432 if (! verifyType3
01433 (StudyInstanceUID,
01434 "RequestAttributesMacro","StudyInstanceUID",
01435 verbose,log,dict,
01436 0,0)) success=false;
01437
01438 { Attribute *a = (*list)[TagFromName(ReferencedStudySequence)]; if (a) a->setUsed(); }
01439 if (! verifyType3
01440 (ReferencedStudySequence,
01441 "RequestAttributesMacro","ReferencedStudySequence",
01442 verbose,log,dict,
01443 1,VMUNLIMITED)) success=false;
01444 if (ReferencedStudySequence && strcmp(ReferencedStudySequence->getVR(),"SQ") == 0) {
01445 AttributeList **array;
01446 int n;
01447 if ((n=ReferencedStudySequence->getLists(&array)) > 0) {
01448 int i; for (i=0; i<n; ++i) {
01449 AttributeList *parentlist=list;
01450 AttributeList *list=array[i];
01451 if (Macro_SOPInstanceReferenceMacro(list).verify(list,verbose,log,dict)) success=false;
01452
01453 }
01454 }
01455 }
01456 { Attribute *a = (*list)[TagFromName(RequestedProcedureDescription)]; if (a) a->setUsed(); }
01457 if (! verifyType3
01458 (RequestedProcedureDescription,
01459 "RequestAttributesMacro","RequestedProcedureDescription",
01460 verbose,log,dict,
01461 0,0)) success=false;
01462
01463 { Attribute *a = (*list)[TagFromName(RequestedProcedureCodeSequence)]; if (a) a->setUsed(); }
01464 if (! verifyType3
01465 (RequestedProcedureCodeSequence,
01466 "RequestAttributesMacro","RequestedProcedureCodeSequence",
01467 verbose,log,dict,
01468 1,1)) success=false;
01469 if (RequestedProcedureCodeSequence && strcmp(RequestedProcedureCodeSequence->getVR(),"SQ") == 0) {
01470 AttributeList **array;
01471 int n;
01472 if ((n=RequestedProcedureCodeSequence->getLists(&array)) > 0) {
01473 int i; for (i=0; i<n; ++i) {
01474 AttributeList *parentlist=list;
01475 AttributeList *list=array[i];
01476 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
01477
01478 }
01479 }
01480 }
01481 { Attribute *a = (*list)[TagFromName(ReasonForRequestedProcedure)]; if (a) a->setUsed(); }
01482 if (! verifyType3
01483 (ReasonForRequestedProcedure,
01484 "RequestAttributesMacro","ReasonForRequestedProcedure",
01485 verbose,log,dict,
01486 0,0)) success=false;
01487
01488 { Attribute *a = (*list)[TagFromName(ReasonForRequestedProcedureCodeSequence)]; if (a) a->setUsed(); }
01489 if (! verifyType3
01490 (ReasonForRequestedProcedureCodeSequence,
01491 "RequestAttributesMacro","ReasonForRequestedProcedureCodeSequence",
01492 verbose,log,dict,
01493 1,1)) success=false;
01494 if (ReasonForRequestedProcedureCodeSequence && strcmp(ReasonForRequestedProcedureCodeSequence->getVR(),"SQ") == 0) {
01495 AttributeList **array;
01496 int n;
01497 if ((n=ReasonForRequestedProcedureCodeSequence->getLists(&array)) > 0) {
01498 int i; for (i=0; i<n; ++i) {
01499 AttributeList *parentlist=list;
01500 AttributeList *list=array[i];
01501 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
01502
01503 }
01504 }
01505 }
01506 { Attribute *a = (*list)[TagFromName(ScheduledProcedureStepID)]; if (a) a->setUsed(); }
01507 if (! verifyType1C
01508 (ScheduledProcedureStepID,
01509 "RequestAttributesMacro","ScheduledProcedureStepID",
01510 verbose,log,dict,
01511 0,
01512 true,
01513 list,parentlist,rootlist,
01514 0,0)) success=false;
01515
01516 { Attribute *a = (*list)[TagFromName(ScheduledProcedureStepDescription)]; if (a) a->setUsed(); }
01517 if (! verifyType3
01518 (ScheduledProcedureStepDescription,
01519 "RequestAttributesMacro","ScheduledProcedureStepDescription",
01520 verbose,log,dict,
01521 0,0)) success=false;
01522
01523 { Attribute *a = (*list)[TagFromName(ScheduledProtocolCodeSequence)]; if (a) a->setUsed(); }
01524 if (! verifyType3
01525 (ScheduledProtocolCodeSequence,
01526 "RequestAttributesMacro","ScheduledProtocolCodeSequence",
01527 verbose,log,dict,
01528 1,VMUNLIMITED)) success=false;
01529 if (ScheduledProtocolCodeSequence && strcmp(ScheduledProtocolCodeSequence->getVR(),"SQ") == 0) {
01530 AttributeList **array;
01531 int n;
01532 if ((n=ScheduledProtocolCodeSequence->getLists(&array)) > 0) {
01533 int i; for (i=0; i<n; ++i) {
01534 AttributeList *parentlist=list;
01535 AttributeList *list=array[i];
01536 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
01537
01538 Attribute *ProtocolContextSequence = (*list)[TagFromName(ProtocolContextSequence)];
01539 { Attribute *a = (*list)[TagFromName(ProtocolContextSequence)]; if (a) a->setUsed(); }
01540 if (! verifyType3
01541 (ProtocolContextSequence,
01542 "RequestAttributesMacro","ProtocolContextSequence",
01543 verbose,log,dict,
01544 1,VMUNLIMITED)) success=false;
01545 if (ProtocolContextSequence && strcmp(ProtocolContextSequence->getVR(),"SQ") == 0) {
01546 AttributeList **array;
01547 int n;
01548 if ((n=ProtocolContextSequence->getLists(&array)) > 0) {
01549 int i; for (i=0; i<n; ++i) {
01550 AttributeList *parentlist=list;
01551 AttributeList *list=array[i];
01552 if (Macro_ContentItemMacro(list).verify(list,verbose,log,dict)) success=false;
01553
01554 Attribute *ContentItemModifierSequence = (*list)[TagFromName(ContentItemModifierSequence)];
01555 { Attribute *a = (*list)[TagFromName(ContentItemModifierSequence)]; if (a) a->setUsed(); }
01556 if (! verifyType3
01557 (ContentItemModifierSequence,
01558 "RequestAttributesMacro","ContentItemModifierSequence",
01559 verbose,log,dict,
01560 1,VMUNLIMITED)) success=false;
01561 if (ContentItemModifierSequence && strcmp(ContentItemModifierSequence->getVR(),"SQ") == 0) {
01562 AttributeList **array;
01563 int n;
01564 if ((n=ContentItemModifierSequence->getLists(&array)) > 0) {
01565 int i; for (i=0; i<n; ++i) {
01566 AttributeList *parentlist=list;
01567 AttributeList *list=array[i];
01568 if (Macro_ContentItemMacro(list).verify(list,verbose,log,dict)) success=false;
01569
01570 }
01571 }
01572 }
01573 }
01574 }
01575 }
01576 }
01577 }
01578 }
01579 return success;
01580 }
01581
01582 bool
01583 Macro_BasicPixelSpacingCalibrationMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
01584 {
01585 const char *module = "BasicPixelSpacingCalibrationMacro";
01586 (void)module;
01587 (void)list;
01588 (void)verbose;
01589 (void)log;
01590 (void)dict;
01591 Assert(list);
01592 Assert(dict);
01593 AttributeList *parentlist=0;
01594 AttributeList *rootlist=list;
01595
01596 bool success=true;
01597
01598 if (verbose)
01599 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
01600
01601 { Attribute *a = (*list)[TagFromName(PixelSpacing)]; if (a) a->setUsed(); }
01602 if (! verifyType1C
01603 (PixelSpacing,
01604 "BasicPixelSpacingCalibrationMacro","PixelSpacing",
01605 verbose,log,dict,
01606 0,
01607 false,
01608 list,parentlist,rootlist,
01609 0,0)) success=false;
01610
01611 if (PixelSpacing && !PixelSpacing->verifyNotZero(
01612 verbose,log,dict,-1,false)) success=false;
01613
01614 { Attribute *a = (*list)[TagFromName(PixelSpacingCalibrationType)]; if (a) a->setUsed(); }
01615 if (! verifyType3
01616 (PixelSpacingCalibrationType,
01617 "BasicPixelSpacingCalibrationMacro","PixelSpacingCalibrationType",
01618 verbose,log,dict,
01619 0,0)) success=false;
01620
01621 { Attribute *a = (*list)[TagFromName(PixelSpacingCalibrationDescription)]; if (a) a->setUsed(); }
01622 if (! verifyType1C
01623 (PixelSpacingCalibrationDescription,
01624 "BasicPixelSpacingCalibrationMacro","PixelSpacingCalibrationDescription",
01625 verbose,log,dict,
01626 Condition_PixelSpacingCalibrationTypeIsPresent,
01627 false,
01628 list,parentlist,rootlist,
01629 0,0)) success=false;
01630
01631 return success;
01632 }
01633
01634 bool
01635 Macro_SOPInstanceReferenceMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
01636 {
01637 const char *module = "SOPInstanceReferenceMacro";
01638 (void)module;
01639 (void)list;
01640 (void)verbose;
01641 (void)log;
01642 (void)dict;
01643 Assert(list);
01644 Assert(dict);
01645 AttributeList *parentlist=0;
01646 AttributeList *rootlist=list;
01647
01648 bool success=true;
01649
01650 if (verbose)
01651 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
01652
01653 { Attribute *a = (*list)[TagFromName(ReferencedSOPClassUID)]; if (a) a->setUsed(); }
01654 if (! verifyType1
01655 (ReferencedSOPClassUID,
01656 "SOPInstanceReferenceMacro","ReferencedSOPClassUID",
01657 verbose,log,dict,
01658 0,0)) success=false;
01659
01660 { Attribute *a = (*list)[TagFromName(ReferencedSOPInstanceUID)]; if (a) a->setUsed(); }
01661 if (! verifyType1
01662 (ReferencedSOPInstanceUID,
01663 "SOPInstanceReferenceMacro","ReferencedSOPInstanceUID",
01664 verbose,log,dict,
01665 0,0)) success=false;
01666
01667 return success;
01668 }
01669
01670 bool
01671 Macro_DisplayShutterMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
01672 {
01673 const char *module = "DisplayShutterMacro";
01674 (void)module;
01675 (void)list;
01676 (void)verbose;
01677 (void)log;
01678 (void)dict;
01679 Assert(list);
01680 Assert(dict);
01681 AttributeList *parentlist=0;
01682 AttributeList *rootlist=list;
01683
01684 bool success=true;
01685
01686 if (verbose)
01687 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
01688
01689 { Attribute *a = (*list)[TagFromName(ShutterShape)]; if (a) a->setUsed(); }
01690 if (! verifyType1
01691 (ShutterShape,
01692 "DisplayShutterMacro","ShutterShape",
01693 verbose,log,dict,
01694 0,0)) success=false;
01695
01696 if (ShutterShape && !ShutterShape->verifyEnumValues(
01697 StringValueDescription_ShutterShape,
01698 verbose,log,dict,-1)) success=false;
01699
01700 { Attribute *a = (*list)[TagFromName(ShutterLeftVerticalEdge)]; if (a) a->setUsed(); }
01701 if (! verifyType1C
01702 (ShutterLeftVerticalEdge,
01703 "DisplayShutterMacro","ShutterLeftVerticalEdge",
01704 verbose,log,dict,
01705 Condition_ShutterShapeIsRectangular,
01706 false,
01707 list,parentlist,rootlist,
01708 0,0)) success=false;
01709
01710 { Attribute *a = (*list)[TagFromName(ShutterRightVerticalEdge)]; if (a) a->setUsed(); }
01711 if (! verifyType1C
01712 (ShutterRightVerticalEdge,
01713 "DisplayShutterMacro","ShutterRightVerticalEdge",
01714 verbose,log,dict,
01715 Condition_ShutterShapeIsRectangular,
01716 false,
01717 list,parentlist,rootlist,
01718 0,0)) success=false;
01719
01720 { Attribute *a = (*list)[TagFromName(ShutterUpperHorizontalEdge)]; if (a) a->setUsed(); }
01721 if (! verifyType1C
01722 (ShutterUpperHorizontalEdge,
01723 "DisplayShutterMacro","ShutterUpperHorizontalEdge",
01724 verbose,log,dict,
01725 Condition_ShutterShapeIsRectangular,
01726 false,
01727 list,parentlist,rootlist,
01728 0,0)) success=false;
01729
01730 { Attribute *a = (*list)[TagFromName(ShutterLowerHorizontalEdge)]; if (a) a->setUsed(); }
01731 if (! verifyType1C
01732 (ShutterLowerHorizontalEdge,
01733 "DisplayShutterMacro","ShutterLowerHorizontalEdge",
01734 verbose,log,dict,
01735 Condition_ShutterShapeIsRectangular,
01736 false,
01737 list,parentlist,rootlist,
01738 0,0)) success=false;
01739
01740 { Attribute *a = (*list)[TagFromName(CenterOfCircularShutter)]; if (a) a->setUsed(); }
01741 if (! verifyType1C
01742 (CenterOfCircularShutter,
01743 "DisplayShutterMacro","CenterOfCircularShutter",
01744 verbose,log,dict,
01745 Condition_ShutterShapeIsCircular,
01746 false,
01747 list,parentlist,rootlist,
01748 0,0)) success=false;
01749
01750 { Attribute *a = (*list)[TagFromName(RadiusOfCircularShutter)]; if (a) a->setUsed(); }
01751 if (! verifyType1C
01752 (RadiusOfCircularShutter,
01753 "DisplayShutterMacro","RadiusOfCircularShutter",
01754 verbose,log,dict,
01755 Condition_ShutterShapeIsCircular,
01756 false,
01757 list,parentlist,rootlist,
01758 0,0)) success=false;
01759
01760 { Attribute *a = (*list)[TagFromName(VerticesOfPolygonalShutter)]; if (a) a->setUsed(); }
01761 if (! verifyType1C
01762 (VerticesOfPolygonalShutter,
01763 "DisplayShutterMacro","VerticesOfPolygonalShutter",
01764 verbose,log,dict,
01765 Condition_ShutterShapeIsPolygonal,
01766 false,
01767 list,parentlist,rootlist,
01768 0,0)) success=false;
01769
01770 { Attribute *a = (*list)[TagFromName(ShutterPresentationValue)]; if (a) a->setUsed(); }
01771 if (! verifyType3
01772 (ShutterPresentationValue,
01773 "DisplayShutterMacro","ShutterPresentationValue",
01774 verbose,log,dict,
01775 0,0)) success=false;
01776
01777 { Attribute *a = (*list)[TagFromName(ShutterPresentationColorCIELabValue)]; if (a) a->setUsed(); }
01778 if (! verifyType3
01779 (ShutterPresentationColorCIELabValue,
01780 "DisplayShutterMacro","ShutterPresentationColorCIELabValue",
01781 verbose,log,dict,
01782 0,0)) success=false;
01783
01784 return success;
01785 }
01786
01787 bool
01788 Macro_ContentIdentificationMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
01789 {
01790 const char *module = "ContentIdentificationMacro";
01791 (void)module;
01792 (void)list;
01793 (void)verbose;
01794 (void)log;
01795 (void)dict;
01796 Assert(list);
01797 Assert(dict);
01798 AttributeList *parentlist=0;
01799 AttributeList *rootlist=list;
01800
01801 bool success=true;
01802
01803 if (verbose)
01804 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
01805
01806 { Attribute *a = (*list)[TagFromName(InstanceNumber)]; if (a) a->setUsed(); }
01807 if (! verifyType1
01808 (InstanceNumber,
01809 "ContentIdentificationMacro","InstanceNumber",
01810 verbose,log,dict,
01811 0,0)) success=false;
01812
01813 { Attribute *a = (*list)[TagFromName(ContentLabel)]; if (a) a->setUsed(); }
01814 if (! verifyType1
01815 (ContentLabel,
01816 "ContentIdentificationMacro","ContentLabel",
01817 verbose,log,dict,
01818 0,0)) success=false;
01819
01820 { Attribute *a = (*list)[TagFromName(ContentDescription)]; if (a) a->setUsed(); }
01821 if (! verifyType2
01822 (ContentDescription,
01823 "ContentIdentificationMacro","ContentDescription",
01824 verbose,log,dict,
01825 0,0)) success=false;
01826
01827 { Attribute *a = (*list)[TagFromName(ContentCreatorsName)]; if (a) a->setUsed(); }
01828 if (! verifyType2
01829 (ContentCreatorsName,
01830 "ContentIdentificationMacro","ContentCreatorsName",
01831 verbose,log,dict,
01832 0,0)) success=false;
01833
01834 { Attribute *a = (*list)[TagFromName(ContentCreatorsIdentificationCodeSequence)]; if (a) a->setUsed(); }
01835 if (! verifyType3
01836 (ContentCreatorsIdentificationCodeSequence,
01837 "ContentIdentificationMacro","ContentCreatorsIdentificationCodeSequence",
01838 verbose,log,dict,
01839 1,1)) success=false;
01840 if (ContentCreatorsIdentificationCodeSequence && strcmp(ContentCreatorsIdentificationCodeSequence->getVR(),"SQ") == 0) {
01841 AttributeList **array;
01842 int n;
01843 if ((n=ContentCreatorsIdentificationCodeSequence->getLists(&array)) > 0) {
01844 int i; for (i=0; i<n; ++i) {
01845 AttributeList *parentlist=list;
01846 AttributeList *list=array[i];
01847 if (Macro_PersonIdentificationMacro(list).verify(list,verbose,log,dict)) success=false;
01848
01849 }
01850 }
01851 }
01852 return success;
01853 }
01854
01855 bool
01856 Macro_HL7v2HierarchicDesignatorMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
01857 {
01858 const char *module = "HL7v2HierarchicDesignatorMacro";
01859 (void)module;
01860 (void)list;
01861 (void)verbose;
01862 (void)log;
01863 (void)dict;
01864 Assert(list);
01865 Assert(dict);
01866 AttributeList *parentlist=0;
01867 AttributeList *rootlist=list;
01868
01869 bool success=true;
01870
01871 if (verbose)
01872 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
01873
01874 { Attribute *a = (*list)[TagFromName(LocalNamespaceEntityID)]; if (a) a->setUsed(); }
01875 if (! verifyType1C
01876 (LocalNamespaceEntityID,
01877 "HL7v2HierarchicDesignatorMacro","LocalNamespaceEntityID",
01878 verbose,log,dict,
01879 Condition_UniversalEntityIDNotPresent,
01880 true,
01881 list,parentlist,rootlist,
01882 0,0)) success=false;
01883
01884 { Attribute *a = (*list)[TagFromName(UniversalEntityID)]; if (a) a->setUsed(); }
01885 if (! verifyType1C
01886 (UniversalEntityID,
01887 "HL7v2HierarchicDesignatorMacro","UniversalEntityID",
01888 verbose,log,dict,
01889 Condition_LocalNamespaceEntityIDNotPresent,
01890 true,
01891 list,parentlist,rootlist,
01892 0,0)) success=false;
01893
01894 { Attribute *a = (*list)[TagFromName(UniversalEntityIDType)]; if (a) a->setUsed(); }
01895 if (! verifyType1C
01896 (UniversalEntityIDType,
01897 "HL7v2HierarchicDesignatorMacro","UniversalEntityIDType",
01898 verbose,log,dict,
01899 Condition_UniversalEntityIDPresent,
01900 false,
01901 list,parentlist,rootlist,
01902 0,0)) success=false;
01903
01904 if (Condition_UniversalEntityIDPresent(list,parentlist,rootlist)) {
01905 if (UniversalEntityIDType) UniversalEntityIDType->verifyDefinedTerms(
01906 StringValueDescription_UniversalEntityIDType,
01907 verbose,log,dict,-1);
01908 }
01909
01910 return success;
01911 }
01912
01913 bool
01914 Macro_IssuerOfPatientIDMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
01915 {
01916 const char *module = "IssuerOfPatientIDMacro";
01917 (void)module;
01918 (void)list;
01919 (void)verbose;
01920 (void)log;
01921 (void)dict;
01922 Assert(list);
01923 Assert(dict);
01924 AttributeList *parentlist=0;
01925 AttributeList *rootlist=list;
01926
01927 bool success=true;
01928
01929 if (verbose)
01930 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
01931
01932 { Attribute *a = (*list)[TagFromName(IssuerOfPatientID)]; if (a) a->setUsed(); }
01933 if (! verifyType3
01934 (IssuerOfPatientID,
01935 "IssuerOfPatientIDMacro","IssuerOfPatientID",
01936 verbose,log,dict,
01937 0,0)) success=false;
01938
01939 { Attribute *a = (*list)[TagFromName(IssuerOfPatientIDQualifiersSequence)]; if (a) a->setUsed(); }
01940 if (! verifyType3
01941 (IssuerOfPatientIDQualifiersSequence,
01942 "IssuerOfPatientIDMacro","IssuerOfPatientIDQualifiersSequence",
01943 verbose,log,dict,
01944 1,1)) success=false;
01945 if (IssuerOfPatientIDQualifiersSequence && strcmp(IssuerOfPatientIDQualifiersSequence->getVR(),"SQ") == 0) {
01946 AttributeList **array;
01947 int n;
01948 if ((n=IssuerOfPatientIDQualifiersSequence->getLists(&array)) > 0) {
01949 int i; for (i=0; i<n; ++i) {
01950 AttributeList *parentlist=list;
01951 AttributeList *list=array[i];
01952 Attribute *UniversalEntityID = (*list)[TagFromName(UniversalEntityID)];
01953 { Attribute *a = (*list)[TagFromName(UniversalEntityID)]; if (a) a->setUsed(); }
01954 if (! verifyType3
01955 (UniversalEntityID,
01956 "IssuerOfPatientIDMacro","UniversalEntityID",
01957 verbose,log,dict,
01958 0,0)) success=false;
01959
01960 Attribute *UniversalEntityIDType = (*list)[TagFromName(UniversalEntityIDType)];
01961 { Attribute *a = (*list)[TagFromName(UniversalEntityIDType)]; if (a) a->setUsed(); }
01962 if (! verifyType3
01963 (UniversalEntityIDType,
01964 "IssuerOfPatientIDMacro","UniversalEntityIDType",
01965 verbose,log,dict,
01966 0,0)) success=false;
01967
01968 if (UniversalEntityIDType) UniversalEntityIDType->verifyDefinedTerms(
01969 StringValueDescription_UniversalEntityIDType,
01970 verbose,log,dict,-1);
01971
01972 Attribute *IdentifierTypeCode = (*list)[TagFromName(IdentifierTypeCode)];
01973 { Attribute *a = (*list)[TagFromName(IdentifierTypeCode)]; if (a) a->setUsed(); }
01974 if (! verifyType3
01975 (IdentifierTypeCode,
01976 "IssuerOfPatientIDMacro","IdentifierTypeCode",
01977 verbose,log,dict,
01978 0,0)) success=false;
01979
01980 if (IdentifierTypeCode) IdentifierTypeCode->verifyDefinedTerms(
01981 StringValueDescription_HL7Table0203IdentifierType,
01982 verbose,log,dict,-1);
01983
01984 Attribute *AssigningFacilitySequence = (*list)[TagFromName(AssigningFacilitySequence)];
01985 { Attribute *a = (*list)[TagFromName(AssigningFacilitySequence)]; if (a) a->setUsed(); }
01986 if (! verifyType3
01987 (AssigningFacilitySequence,
01988 "IssuerOfPatientIDMacro","AssigningFacilitySequence",
01989 verbose,log,dict,
01990 1,1)) success=false;
01991 if (AssigningFacilitySequence && strcmp(AssigningFacilitySequence->getVR(),"SQ") == 0) {
01992 AttributeList **array;
01993 int n;
01994 if ((n=AssigningFacilitySequence->getLists(&array)) > 0) {
01995 int i; for (i=0; i<n; ++i) {
01996 AttributeList *parentlist=list;
01997 AttributeList *list=array[i];
01998 if (Macro_HL7v2HierarchicDesignatorMacro(list).verify(list,verbose,log,dict)) success=false;
01999
02000 }
02001 }
02002 }
02003 Attribute *AssigningJurisdictionCodeSequence = (*list)[TagFromName(AssigningJurisdictionCodeSequence)];
02004 { Attribute *a = (*list)[TagFromName(AssigningJurisdictionCodeSequence)]; if (a) a->setUsed(); }
02005 if (! verifyType3
02006 (AssigningJurisdictionCodeSequence,
02007 "IssuerOfPatientIDMacro","AssigningJurisdictionCodeSequence",
02008 verbose,log,dict,
02009 1,1)) success=false;
02010 if (AssigningJurisdictionCodeSequence && strcmp(AssigningJurisdictionCodeSequence->getVR(),"SQ") == 0) {
02011 AttributeList **array;
02012 int n;
02013 if ((n=AssigningJurisdictionCodeSequence->getLists(&array)) > 0) {
02014 int i; for (i=0; i<n; ++i) {
02015 AttributeList *parentlist=list;
02016 AttributeList *list=array[i];
02017 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
02018
02019 }
02020 }
02021 }
02022 Attribute *AssigningAgencyOrDepartmentCodeSequence = (*list)[TagFromName(AssigningAgencyOrDepartmentCodeSequence)];
02023 { Attribute *a = (*list)[TagFromName(AssigningAgencyOrDepartmentCodeSequence)]; if (a) a->setUsed(); }
02024 if (! verifyType3
02025 (AssigningAgencyOrDepartmentCodeSequence,
02026 "IssuerOfPatientIDMacro","AssigningAgencyOrDepartmentCodeSequence",
02027 verbose,log,dict,
02028 1,1)) success=false;
02029 if (AssigningAgencyOrDepartmentCodeSequence && strcmp(AssigningAgencyOrDepartmentCodeSequence->getVR(),"SQ") == 0) {
02030 AttributeList **array;
02031 int n;
02032 if ((n=AssigningAgencyOrDepartmentCodeSequence->getLists(&array)) > 0) {
02033 int i; for (i=0; i<n; ++i) {
02034 AttributeList *parentlist=list;
02035 AttributeList *list=array[i];
02036 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
02037
02038 }
02039 }
02040 }
02041 }
02042 }
02043 }
02044 return success;
02045 }
02046
02047 bool
02048 Macro_GeneralContributingSourcesMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
02049 {
02050 const char *module = "GeneralContributingSourcesMacro";
02051 (void)module;
02052 (void)list;
02053 (void)verbose;
02054 (void)log;
02055 (void)dict;
02056 Assert(list);
02057 Assert(dict);
02058 AttributeList *parentlist=0;
02059 AttributeList *rootlist=list;
02060
02061 bool success=true;
02062
02063 if (verbose)
02064 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
02065
02066 { Attribute *a = (*list)[TagFromName(ContributingSOPInstancesReferenceSequence)]; if (a) a->setUsed(); }
02067 if (! verifyRequired
02068 (ContributingSOPInstancesReferenceSequence,
02069 "GeneralContributingSourcesMacro","ContributingSOPInstancesReferenceSequence",
02070 verbose,log,dict,
02071 1,VMUNLIMITED)) success=false;
02072 if (ContributingSOPInstancesReferenceSequence && strcmp(ContributingSOPInstancesReferenceSequence->getVR(),"SQ") == 0) {
02073 AttributeList **array;
02074 int n;
02075 if ((n=ContributingSOPInstancesReferenceSequence->getLists(&array)) > 0) {
02076 int i; for (i=0; i<n; ++i) {
02077 AttributeList *parentlist=list;
02078 AttributeList *list=array[i];
02079 Attribute *StudyInstanceUID = (*list)[TagFromName(StudyInstanceUID)];
02080 { Attribute *a = (*list)[TagFromName(StudyInstanceUID)]; if (a) a->setUsed(); }
02081 if (! verifyType3
02082 (StudyInstanceUID,
02083 "GeneralContributingSourcesMacro","StudyInstanceUID",
02084 verbose,log,dict,
02085 0,0)) success=false;
02086
02087 Attribute *ReferencedSeriesSequence = (*list)[TagFromName(ReferencedSeriesSequence)];
02088 { Attribute *a = (*list)[TagFromName(ReferencedSeriesSequence)]; if (a) a->setUsed(); }
02089 if (! verifyType1
02090 (ReferencedSeriesSequence,
02091 "GeneralContributingSourcesMacro","ReferencedSeriesSequence",
02092 verbose,log,dict,
02093 1,VMUNLIMITED)) success=false;
02094 if (ReferencedSeriesSequence && strcmp(ReferencedSeriesSequence->getVR(),"SQ") == 0) {
02095 AttributeList **array;
02096 int n;
02097 if ((n=ReferencedSeriesSequence->getLists(&array)) > 0) {
02098 int i; for (i=0; i<n; ++i) {
02099 AttributeList *parentlist=list;
02100 AttributeList *list=array[i];
02101 Attribute *SeriesInstanceUID = (*list)[TagFromName(SeriesInstanceUID)];
02102 { Attribute *a = (*list)[TagFromName(SeriesInstanceUID)]; if (a) a->setUsed(); }
02103 if (! verifyType1
02104 (SeriesInstanceUID,
02105 "GeneralContributingSourcesMacro","SeriesInstanceUID",
02106 verbose,log,dict,
02107 0,0)) success=false;
02108
02109 Attribute *SeriesNumber = (*list)[TagFromName(SeriesNumber)];
02110 { Attribute *a = (*list)[TagFromName(SeriesNumber)]; if (a) a->setUsed(); }
02111 if (! verifyType2
02112 (SeriesNumber,
02113 "GeneralContributingSourcesMacro","SeriesNumber",
02114 verbose,log,dict,
02115 0,0)) success=false;
02116
02117 Attribute *ReferencedInstanceSequence = (*list)[TagFromName(ReferencedInstanceSequence)];
02118 { Attribute *a = (*list)[TagFromName(ReferencedInstanceSequence)]; if (a) a->setUsed(); }
02119 if (! verifyType1
02120 (ReferencedInstanceSequence,
02121 "GeneralContributingSourcesMacro","ReferencedInstanceSequence",
02122 verbose,log,dict,
02123 1,VMUNLIMITED)) success=false;
02124 if (ReferencedInstanceSequence && strcmp(ReferencedInstanceSequence->getVR(),"SQ") == 0) {
02125 AttributeList **array;
02126 int n;
02127 if ((n=ReferencedInstanceSequence->getLists(&array)) > 0) {
02128 int i; for (i=0; i<n; ++i) {
02129 AttributeList *parentlist=list;
02130 AttributeList *list=array[i];
02131 if (Macro_SOPInstanceReferenceMacro(list).verify(list,verbose,log,dict)) success=false;
02132
02133 Attribute *InstanceNumber = (*list)[TagFromName(InstanceNumber)];
02134 { Attribute *a = (*list)[TagFromName(InstanceNumber)]; if (a) a->setUsed(); }
02135 if (! verifyType2
02136 (InstanceNumber,
02137 "GeneralContributingSourcesMacro","InstanceNumber",
02138 verbose,log,dict,
02139 0,0)) success=false;
02140
02141 }
02142 }
02143 }
02144 }
02145 }
02146 }
02147 }
02148 }
02149 }
02150 { Attribute *a = (*list)[TagFromName(Manufacturer)]; if (a) a->setUsed(); }
02151 if (! verifyType2
02152 (Manufacturer,
02153 "GeneralContributingSourcesMacro","Manufacturer",
02154 verbose,log,dict,
02155 0,0)) success=false;
02156
02157 { Attribute *a = (*list)[TagFromName(ManufacturerModelName)]; if (a) a->setUsed(); }
02158 if (! verifyType1C
02159 (ManufacturerModelName,
02160 "GeneralContributingSourcesMacro","ManufacturerModelName",
02161 verbose,log,dict,
02162 0,
02163 false,
02164 list,parentlist,rootlist,
02165 0,0)) success=false;
02166
02167 { Attribute *a = (*list)[TagFromName(DeviceSerialNumber)]; if (a) a->setUsed(); }
02168 if (! verifyType1C
02169 (DeviceSerialNumber,
02170 "GeneralContributingSourcesMacro","DeviceSerialNumber",
02171 verbose,log,dict,
02172 0,
02173 false,
02174 list,parentlist,rootlist,
02175 0,0)) success=false;
02176
02177 { Attribute *a = (*list)[TagFromName(SoftwareVersion)]; if (a) a->setUsed(); }
02178 if (! verifyType1C
02179 (SoftwareVersion,
02180 "GeneralContributingSourcesMacro","SoftwareVersion",
02181 verbose,log,dict,
02182 0,
02183 false,
02184 list,parentlist,rootlist,
02185 0,0)) success=false;
02186
02187 { Attribute *a = (*list)[TagFromName(AcquisitionDateTime)]; if (a) a->setUsed(); }
02188 if (! verifyType1C
02189 (AcquisitionDateTime,
02190 "GeneralContributingSourcesMacro","AcquisitionDateTime",
02191 verbose,log,dict,
02192 0,
02193 false,
02194 list,parentlist,rootlist,
02195 0,0)) success=false;
02196
02197 { Attribute *a = (*list)[TagFromName(StationName)]; if (a) a->setUsed(); }
02198 if (! verifyType1C
02199 (StationName,
02200 "GeneralContributingSourcesMacro","StationName",
02201 verbose,log,dict,
02202 0,
02203 false,
02204 list,parentlist,rootlist,
02205 0,0)) success=false;
02206
02207 { Attribute *a = (*list)[TagFromName(OperatorName)]; if (a) a->setUsed(); }
02208 if (! verifyType1C
02209 (OperatorName,
02210 "GeneralContributingSourcesMacro","OperatorName",
02211 verbose,log,dict,
02212 0,
02213 false,
02214 list,parentlist,rootlist,
02215 0,0)) success=false;
02216
02217 { Attribute *a = (*list)[TagFromName(OperatorIdentificationSequence)]; if (a) a->setUsed(); }
02218 if (! verifyType1C
02219 (OperatorIdentificationSequence,
02220 "GeneralContributingSourcesMacro","OperatorIdentificationSequence",
02221 verbose,log,dict,
02222 0,
02223 false,
02224 list,parentlist,rootlist,
02225 1,VMUNLIMITED)) success=false;
02226 if (OperatorIdentificationSequence && strcmp(OperatorIdentificationSequence->getVR(),"SQ") == 0) {
02227 AttributeList **array;
02228 int n;
02229 if ((n=OperatorIdentificationSequence->getLists(&array)) > 0) {
02230 int i; for (i=0; i<n; ++i) {
02231 AttributeList *parentlist=list;
02232 AttributeList *list=array[i];
02233 if (Macro_PersonIdentificationMacro(list).verify(list,verbose,log,dict)) success=false;
02234
02235 }
02236 }
02237 }
02238 { Attribute *a = (*list)[TagFromName(ProtocolName)]; if (a) a->setUsed(); }
02239 if (! verifyType1C
02240 (ProtocolName,
02241 "GeneralContributingSourcesMacro","ProtocolName",
02242 verbose,log,dict,
02243 0,
02244 false,
02245 list,parentlist,rootlist,
02246 0,0)) success=false;
02247
02248 { Attribute *a = (*list)[TagFromName(PerformedProtocolCodeSequence)]; if (a) a->setUsed(); }
02249 if (! verifyType1C
02250 (PerformedProtocolCodeSequence,
02251 "GeneralContributingSourcesMacro","PerformedProtocolCodeSequence",
02252 verbose,log,dict,
02253 0,
02254 false,
02255 list,parentlist,rootlist,
02256 1,VMUNLIMITED)) success=false;
02257 if (PerformedProtocolCodeSequence && strcmp(PerformedProtocolCodeSequence->getVR(),"SQ") == 0) {
02258 AttributeList **array;
02259 int n;
02260 if ((n=PerformedProtocolCodeSequence->getLists(&array)) > 0) {
02261 int i; for (i=0; i<n; ++i) {
02262 AttributeList *parentlist=list;
02263 AttributeList *list=array[i];
02264 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
02265
02266 }
02267 }
02268 }
02269 { Attribute *a = (*list)[TagFromName(AcquisitionProtocolName)]; if (a) a->setUsed(); }
02270 if (! verifyType1C
02271 (AcquisitionProtocolName,
02272 "GeneralContributingSourcesMacro","AcquisitionProtocolName",
02273 verbose,log,dict,
02274 0,
02275 false,
02276 list,parentlist,rootlist,
02277 0,0)) success=false;
02278
02279 return success;
02280 }
02281
02282 bool
02283 Macro_ContributingImageSourcesMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
02284 {
02285 const char *module = "ContributingImageSourcesMacro";
02286 (void)module;
02287 (void)list;
02288 (void)verbose;
02289 (void)log;
02290 (void)dict;
02291 Assert(list);
02292 Assert(dict);
02293 AttributeList *parentlist=0;
02294 AttributeList *rootlist=list;
02295
02296 bool success=true;
02297
02298 if (verbose)
02299 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
02300
02301 { Attribute *a = (*list)[TagFromName(Rows)]; if (a) a->setUsed(); }
02302 if (! verifyType1
02303 (Rows,
02304 "ContributingImageSourcesMacro","Rows",
02305 verbose,log,dict,
02306 0,0)) success=false;
02307
02308 if (Rows && !Rows->verifyNotZero(
02309 verbose,log,dict,-1,false)) success=false;
02310
02311 { Attribute *a = (*list)[TagFromName(Columns)]; if (a) a->setUsed(); }
02312 if (! verifyType1
02313 (Columns,
02314 "ContributingImageSourcesMacro","Columns",
02315 verbose,log,dict,
02316 0,0)) success=false;
02317
02318 if (Columns && !Columns->verifyNotZero(
02319 verbose,log,dict,-1,false)) success=false;
02320
02321 { Attribute *a = (*list)[TagFromName(BitsStored)]; if (a) a->setUsed(); }
02322 if (! verifyType1
02323 (BitsStored,
02324 "ContributingImageSourcesMacro","BitsStored",
02325 verbose,log,dict,
02326 0,0)) success=false;
02327
02328 if (BitsStored && !BitsStored->verifyNotZero(
02329 verbose,log,dict,-1,false)) success=false;
02330
02331 { Attribute *a = (*list)[TagFromName(LossyImageCompression)]; if (a) a->setUsed(); }
02332 if (! verifyType1
02333 (LossyImageCompression,
02334 "ContributingImageSourcesMacro","LossyImageCompression",
02335 verbose,log,dict,
02336 0,0)) success=false;
02337
02338 if (LossyImageCompression && !LossyImageCompression->verifyEnumValues(
02339 StringValueDescription_LossyImageCompression,
02340 verbose,log,dict,-1)) success=false;
02341
02342 { Attribute *a = (*list)[TagFromName(LossyImageCompressionRatio)]; if (a) a->setUsed(); }
02343 if (! verifyType1C
02344 (LossyImageCompressionRatio,
02345 "ContributingImageSourcesMacro","LossyImageCompressionRatio",
02346 verbose,log,dict,
02347 Condition_LossyImageCompressionIs01,
02348 false,
02349 list,parentlist,rootlist,
02350 0,0)) success=false;
02351
02352 { Attribute *a = (*list)[TagFromName(LossyImageCompressionMethod)]; if (a) a->setUsed(); }
02353 if (! verifyType1C
02354 (LossyImageCompressionMethod,
02355 "ContributingImageSourcesMacro","LossyImageCompressionMethod",
02356 verbose,log,dict,
02357 Condition_LossyImageCompressionIs01,
02358 false,
02359 list,parentlist,rootlist,
02360 0,0)) success=false;
02361
02362 if (Condition_LossyImageCompressionIs01(list,parentlist,rootlist)) {
02363 if (LossyImageCompressionMethod) LossyImageCompressionMethod->verifyDefinedTerms(
02364 StringValueDescription_LossyImageCompressionMethod,
02365 verbose,log,dict,-1);
02366 }
02367
02368 return success;
02369 }
02370
02371 bool
02372 Macro_PatientOrientationMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
02373 {
02374 const char *module = "PatientOrientationMacro";
02375 (void)module;
02376 (void)list;
02377 (void)verbose;
02378 (void)log;
02379 (void)dict;
02380 Assert(list);
02381 Assert(dict);
02382 AttributeList *parentlist=0;
02383 AttributeList *rootlist=list;
02384
02385 bool success=true;
02386
02387 if (verbose)
02388 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
02389
02390 { Attribute *a = (*list)[TagFromName(PatientOrientationCodeSequence)]; if (a) a->setUsed(); }
02391 if (! verifyType1
02392 (PatientOrientationCodeSequence,
02393 "PatientOrientationMacro","PatientOrientationCodeSequence",
02394 verbose,log,dict,
02395 1,1)) success=false;
02396 if (PatientOrientationCodeSequence && strcmp(PatientOrientationCodeSequence->getVR(),"SQ") == 0) {
02397 AttributeList **array;
02398 int n;
02399 if ((n=PatientOrientationCodeSequence->getLists(&array)) > 0) {
02400 int i; for (i=0; i<n; ++i) {
02401 AttributeList *parentlist=list;
02402 AttributeList *list=array[i];
02403 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
02404
02405 Attribute *PatientOrientationModifierCodeSequence = (*list)[TagFromName(PatientOrientationModifierCodeSequence)];
02406 { Attribute *a = (*list)[TagFromName(PatientOrientationModifierCodeSequence)]; if (a) a->setUsed(); }
02407 if (! verifyType1C
02408 (PatientOrientationModifierCodeSequence,
02409 "PatientOrientationMacro","PatientOrientationModifierCodeSequence",
02410 verbose,log,dict,
02411 0,
02412 false,
02413 list,parentlist,rootlist,
02414 1,1)) success=false;
02415 if (PatientOrientationModifierCodeSequence && strcmp(PatientOrientationModifierCodeSequence->getVR(),"SQ") == 0) {
02416 AttributeList **array;
02417 int n;
02418 if ((n=PatientOrientationModifierCodeSequence->getLists(&array)) > 0) {
02419 int i; for (i=0; i<n; ++i) {
02420 AttributeList *parentlist=list;
02421 AttributeList *list=array[i];
02422 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
02423
02424 }
02425 }
02426 }
02427 }
02428 }
02429 }
02430 { Attribute *a = (*list)[TagFromName(PatientGantryRelationshipCodeSequence)]; if (a) a->setUsed(); }
02431 if (! verifyType3
02432 (PatientGantryRelationshipCodeSequence,
02433 "PatientOrientationMacro","PatientGantryRelationshipCodeSequence",
02434 verbose,log,dict,
02435 1,1)) success=false;
02436 if (PatientGantryRelationshipCodeSequence && strcmp(PatientGantryRelationshipCodeSequence->getVR(),"SQ") == 0) {
02437 AttributeList **array;
02438 int n;
02439 if ((n=PatientGantryRelationshipCodeSequence->getLists(&array)) > 0) {
02440 int i; for (i=0; i<n; ++i) {
02441 AttributeList *parentlist=list;
02442 AttributeList *list=array[i];
02443 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
02444
02445 }
02446 }
02447 }
02448 return success;
02449 }
02450
02451 bool
02452 Macro_PerformedProcedureStepSummaryMacro::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
02453 {
02454 const char *module = "PerformedProcedureStepSummaryMacro";
02455 (void)module;
02456 (void)list;
02457 (void)verbose;
02458 (void)log;
02459 (void)dict;
02460 Assert(list);
02461 Assert(dict);
02462 AttributeList *parentlist=0;
02463 AttributeList *rootlist=list;
02464
02465 bool success=true;
02466
02467 if (verbose)
02468 log << MMsgDC(Verifying) << " " << MMsgDC(Macro) << " " << module << endl;
02469
02470 { Attribute *a = (*list)[TagFromName(PerformedProcedureStepID)]; if (a) a->setUsed(); }
02471 if (! verifyType3
02472 (PerformedProcedureStepID,
02473 "PerformedProcedureStepSummaryMacro","PerformedProcedureStepID",
02474 verbose,log,dict,
02475 0,0)) success=false;
02476
02477 { Attribute *a = (*list)[TagFromName(PerformedProcedureStepStartDate)]; if (a) a->setUsed(); }
02478 if (! verifyType3
02479 (PerformedProcedureStepStartDate,
02480 "PerformedProcedureStepSummaryMacro","PerformedProcedureStepStartDate",
02481 verbose,log,dict,
02482 0,0)) success=false;
02483
02484 { Attribute *a = (*list)[TagFromName(PerformedProcedureStepStartTime)]; if (a) a->setUsed(); }
02485 if (! verifyType3
02486 (PerformedProcedureStepStartTime,
02487 "PerformedProcedureStepSummaryMacro","PerformedProcedureStepStartTime",
02488 verbose,log,dict,
02489 0,0)) success=false;
02490
02491 { Attribute *a = (*list)[TagFromName(PerformedProcedureStepDescription)]; if (a) a->setUsed(); }
02492 if (! verifyType3
02493 (PerformedProcedureStepDescription,
02494 "PerformedProcedureStepSummaryMacro","PerformedProcedureStepDescription",
02495 verbose,log,dict,
02496 0,0)) success=false;
02497
02498 { Attribute *a = (*list)[TagFromName(PerformedProtocolCodeSequence)]; if (a) a->setUsed(); }
02499 if (! verifyType3
02500 (PerformedProtocolCodeSequence,
02501 "PerformedProcedureStepSummaryMacro","PerformedProtocolCodeSequence",
02502 verbose,log,dict,
02503 1,VMUNLIMITED)) success=false;
02504 if (PerformedProtocolCodeSequence && strcmp(PerformedProtocolCodeSequence->getVR(),"SQ") == 0) {
02505 AttributeList **array;
02506 int n;
02507 if ((n=PerformedProtocolCodeSequence->getLists(&array)) > 0) {
02508 int i; for (i=0; i<n; ++i) {
02509 AttributeList *parentlist=list;
02510 AttributeList *list=array[i];
02511 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
02512
02513 Attribute *ProtocolContextSequence = (*list)[TagFromName(ProtocolContextSequence)];
02514 { Attribute *a = (*list)[TagFromName(ProtocolContextSequence)]; if (a) a->setUsed(); }
02515 if (! verifyType3
02516 (ProtocolContextSequence,
02517 "PerformedProcedureStepSummaryMacro","ProtocolContextSequence",
02518 verbose,log,dict,
02519 1,VMUNLIMITED)) success=false;
02520 if (ProtocolContextSequence && strcmp(ProtocolContextSequence->getVR(),"SQ") == 0) {
02521 AttributeList **array;
02522 int n;
02523 if ((n=ProtocolContextSequence->getLists(&array)) > 0) {
02524 int i; for (i=0; i<n; ++i) {
02525 AttributeList *parentlist=list;
02526 AttributeList *list=array[i];
02527 if (Macro_ContentItemMacro(list).verify(list,verbose,log,dict)) success=false;
02528
02529 Attribute *ContentItemModifierSequence = (*list)[TagFromName(ContentItemModifierSequence)];
02530 { Attribute *a = (*list)[TagFromName(ContentItemModifierSequence)]; if (a) a->setUsed(); }
02531 if (! verifyType3
02532 (ContentItemModifierSequence,
02533 "PerformedProcedureStepSummaryMacro","ContentItemModifierSequence",
02534 verbose,log,dict,
02535 1,VMUNLIMITED)) success=false;
02536 if (ContentItemModifierSequence && strcmp(ContentItemModifierSequence->getVR(),"SQ") == 0) {
02537 AttributeList **array;
02538 int n;
02539 if ((n=ContentItemModifierSequence->getLists(&array)) > 0) {
02540 int i; for (i=0; i<n; ++i) {
02541 AttributeList *parentlist=list;
02542 AttributeList *list=array[i];
02543 if (Macro_ContentItemMacro(list).verify(list,verbose,log,dict)) success=false;
02544
02545 }
02546 }
02547 }
02548 }
02549 }
02550 }
02551 }
02552 }
02553 }
02554 { Attribute *a = (*list)[TagFromName(CommentsOnPerformedProcedureStep)]; if (a) a->setUsed(); }
02555 if (! verifyType3
02556 (CommentsOnPerformedProcedureStep,
02557 "PerformedProcedureStepSummaryMacro","CommentsOnPerformedProcedureStep",
02558 verbose,log,dict,
02559 0,0)) success=false;
02560
02561 return success;
02562 }
02563
02564 bool
02565 Module_Patient::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
02566 {
02567 const char *module = "Patient";
02568 (void)module;
02569 (void)list;
02570 (void)verbose;
02571 (void)log;
02572 (void)dict;
02573 Assert(list);
02574 Assert(dict);
02575 AttributeList *parentlist=0;
02576 AttributeList *rootlist=list;
02577
02578 bool success=true;
02579
02580 if (verbose)
02581 log << MMsgDC(Verifying) << " " << MMsgDC(Module) << " " << module << endl;
02582
02583 { Attribute *a = (*list)[TagFromName(PatientName)]; if (a) a->setUsed(); }
02584 if (! verifyType2
02585 (PatientName,
02586 "Patient","PatientName",
02587 verbose,log,dict,
02588 0,0)) success=false;
02589
02590 { Attribute *a = (*list)[TagFromName(PatientID)]; if (a) a->setUsed(); }
02591 if (! verifyType2
02592 (PatientID,
02593 "Patient","PatientID",
02594 verbose,log,dict,
02595 0,0)) success=false;
02596
02597 if (Macro_IssuerOfPatientIDMacro(list).verify(list,verbose,log,dict)) success=false;
02598
02599 { Attribute *a = (*list)[TagFromName(PatientBirthDate)]; if (a) a->setUsed(); }
02600 if (! verifyType2
02601 (PatientBirthDate,
02602 "Patient","PatientBirthDate",
02603 verbose,log,dict,
02604 0,0)) success=false;
02605
02606 { Attribute *a = (*list)[TagFromName(PatientSex)]; if (a) a->setUsed(); }
02607 if (! verifyType2
02608 (PatientSex,
02609 "Patient","PatientSex",
02610 verbose,log,dict,
02611 0,0)) success=false;
02612
02613 if (PatientSex && !PatientSex->verifyEnumValues(
02614 StringValueDescription_Sex,
02615 verbose,log,dict,-1)) success=false;
02616
02617 { Attribute *a = (*list)[TagFromName(ReferencedPatientSequence)]; if (a) a->setUsed(); }
02618 if (! verifyType3
02619 (ReferencedPatientSequence,
02620 "Patient","ReferencedPatientSequence",
02621 verbose,log,dict,
02622 1,1)) success=false;
02623 if (ReferencedPatientSequence && strcmp(ReferencedPatientSequence->getVR(),"SQ") == 0) {
02624 AttributeList **array;
02625 int n;
02626 if ((n=ReferencedPatientSequence->getLists(&array)) > 0) {
02627 int i; for (i=0; i<n; ++i) {
02628 AttributeList *parentlist=list;
02629 AttributeList *list=array[i];
02630 if (Macro_SOPInstanceReferenceMacro(list).verify(list,verbose,log,dict)) success=false;
02631
02632 }
02633 }
02634 }
02635 { Attribute *a = (*list)[TagFromName(PatientBirthTime)]; if (a) a->setUsed(); }
02636 if (! verifyType3
02637 (PatientBirthTime,
02638 "Patient","PatientBirthTime",
02639 verbose,log,dict,
02640 0,0)) success=false;
02641
02642 { Attribute *a = (*list)[TagFromName(OtherPatientID)]; if (a) a->setUsed(); }
02643 if (! verifyType3
02644 (OtherPatientID,
02645 "Patient","OtherPatientID",
02646 verbose,log,dict,
02647 0,0)) success=false;
02648
02649 { Attribute *a = (*list)[TagFromName(OtherPatientIDSequence)]; if (a) a->setUsed(); }
02650 if (! verifyType3
02651 (OtherPatientIDSequence,
02652 "Patient","OtherPatientIDSequence",
02653 verbose,log,dict,
02654 1,VMUNLIMITED)) success=false;
02655 if (OtherPatientIDSequence && strcmp(OtherPatientIDSequence->getVR(),"SQ") == 0) {
02656 AttributeList **array;
02657 int n;
02658 if ((n=OtherPatientIDSequence->getLists(&array)) > 0) {
02659 int i; for (i=0; i<n; ++i) {
02660 AttributeList *parentlist=list;
02661 AttributeList *list=array[i];
02662 Attribute *PatientID = (*list)[TagFromName(PatientID)];
02663 { Attribute *a = (*list)[TagFromName(PatientID)]; if (a) a->setUsed(); }
02664 if (! verifyType1
02665 (PatientID,
02666 "Patient","PatientID",
02667 verbose,log,dict,
02668 0,0)) success=false;
02669
02670 if (Macro_IssuerOfPatientIDMacro(list).verify(list,verbose,log,dict)) success=false;
02671
02672 Attribute *TypeOfPatientID = (*list)[TagFromName(TypeOfPatientID)];
02673 { Attribute *a = (*list)[TagFromName(TypeOfPatientID)]; if (a) a->setUsed(); }
02674 if (! verifyType1
02675 (TypeOfPatientID,
02676 "Patient","TypeOfPatientID",
02677 verbose,log,dict,
02678 0,0)) success=false;
02679
02680 if (TypeOfPatientID) TypeOfPatientID->verifyDefinedTerms(
02681 StringValueDescription_TypeOfPatientID,
02682 verbose,log,dict,-1);
02683
02684 }
02685 }
02686 }
02687 { Attribute *a = (*list)[TagFromName(OtherPatientName)]; if (a) a->setUsed(); }
02688 if (! verifyType3
02689 (OtherPatientName,
02690 "Patient","OtherPatientName",
02691 verbose,log,dict,
02692 0,0)) success=false;
02693
02694 { Attribute *a = (*list)[TagFromName(EthnicGroup)]; if (a) a->setUsed(); }
02695 if (! verifyType3
02696 (EthnicGroup,
02697 "Patient","EthnicGroup",
02698 verbose,log,dict,
02699 0,0)) success=false;
02700
02701 { Attribute *a = (*list)[TagFromName(PatientComments)]; if (a) a->setUsed(); }
02702 if (! verifyType3
02703 (PatientComments,
02704 "Patient","PatientComments",
02705 verbose,log,dict,
02706 0,0)) success=false;
02707
02708 { Attribute *a = (*list)[TagFromName(PatientSpeciesDescription)]; if (a) a->setUsed(); }
02709 if (! verifyType1C
02710 (PatientSpeciesDescription,
02711 "Patient","PatientSpeciesDescription",
02712 verbose,log,dict,
02713 Condition_IsAnimalAndPatientSpeciesCodeSequenceAbsent,
02714 true,
02715 list,parentlist,rootlist,
02716 0,0)) success=false;
02717
02718 { Attribute *a = (*list)[TagFromName(PatientSpeciesCodeSequence)]; if (a) a->setUsed(); }
02719 if (! verifyType1C
02720 (PatientSpeciesCodeSequence,
02721 "Patient","PatientSpeciesCodeSequence",
02722 verbose,log,dict,
02723 Condition_IsAnimalAndPatientSpeciesDescriptionAbsent,
02724 true,
02725 list,parentlist,rootlist,
02726 1,1)) success=false;
02727 if (PatientSpeciesCodeSequence && strcmp(PatientSpeciesCodeSequence->getVR(),"SQ") == 0) {
02728 AttributeList **array;
02729 int n;
02730 if ((n=PatientSpeciesCodeSequence->getLists(&array)) > 0) {
02731 int i; for (i=0; i<n; ++i) {
02732 AttributeList *parentlist=list;
02733 AttributeList *list=array[i];
02734 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
02735
02736 }
02737 }
02738 }
02739 { Attribute *a = (*list)[TagFromName(PatientBreedDescription)]; if (a) a->setUsed(); }
02740 if (! verifyType2C
02741 (PatientBreedDescription,
02742 "Patient","PatientBreedDescription",
02743 verbose,log,dict,
02744 Condition_IsAnimalAndPatientBreedCodeSequenceEmpty,
02745 true,
02746 list,parentlist,rootlist,
02747 0,0)) success=false;
02748
02749 { Attribute *a = (*list)[TagFromName(PatientBreedCodeSequence)]; if (a) a->setUsed(); }
02750 if (! verifyType2C
02751 (PatientBreedCodeSequence,
02752 "Patient","PatientBreedCodeSequence",
02753 verbose,log,dict,
02754 Condition_IsAnimal,
02755 false,
02756 list,parentlist,rootlist,
02757 0,1)) success=false;
02758 if (PatientBreedCodeSequence && strcmp(PatientBreedCodeSequence->getVR(),"SQ") == 0) {
02759 AttributeList **array;
02760 int n;
02761 if ((n=PatientBreedCodeSequence->getLists(&array)) > 0) {
02762 int i; for (i=0; i<n; ++i) {
02763 AttributeList *parentlist=list;
02764 AttributeList *list=array[i];
02765 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
02766
02767 }
02768 }
02769 }
02770 { Attribute *a = (*list)[TagFromName(BreedRegistrationSequence)]; if (a) a->setUsed(); }
02771 if (! verifyType2C
02772 (BreedRegistrationSequence,
02773 "Patient","BreedRegistrationSequence",
02774 verbose,log,dict,
02775 Condition_IsAnimal,
02776 false,
02777 list,parentlist,rootlist,
02778 0,VMUNLIMITED)) success=false;
02779 if (BreedRegistrationSequence && strcmp(BreedRegistrationSequence->getVR(),"SQ") == 0) {
02780 AttributeList **array;
02781 int n;
02782 if ((n=BreedRegistrationSequence->getLists(&array)) > 0) {
02783 int i; for (i=0; i<n; ++i) {
02784 AttributeList *parentlist=list;
02785 AttributeList *list=array[i];
02786 Attribute *BreedRegistrationNumber = (*list)[TagFromName(BreedRegistrationNumber)];
02787 { Attribute *a = (*list)[TagFromName(BreedRegistrationNumber)]; if (a) a->setUsed(); }
02788 if (! verifyType1
02789 (BreedRegistrationNumber,
02790 "Patient","BreedRegistrationNumber",
02791 verbose,log,dict,
02792 0,0)) success=false;
02793
02794 Attribute *BreedRegistryCodeSequence = (*list)[TagFromName(BreedRegistryCodeSequence)];
02795 { Attribute *a = (*list)[TagFromName(BreedRegistryCodeSequence)]; if (a) a->setUsed(); }
02796 if (! verifyType1
02797 (BreedRegistryCodeSequence,
02798 "Patient","BreedRegistryCodeSequence",
02799 verbose,log,dict,
02800 1,1)) success=false;
02801 if (BreedRegistryCodeSequence && strcmp(BreedRegistryCodeSequence->getVR(),"SQ") == 0) {
02802 AttributeList **array;
02803 int n;
02804 if ((n=BreedRegistryCodeSequence->getLists(&array)) > 0) {
02805 int i; for (i=0; i<n; ++i) {
02806 AttributeList *parentlist=list;
02807 AttributeList *list=array[i];
02808 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
02809
02810 }
02811 }
02812 }
02813 }
02814 }
02815 }
02816 { Attribute *a = (*list)[TagFromName(ResponsiblePerson)]; if (a) a->setUsed(); }
02817 if (! verifyType2C
02818 (ResponsiblePerson,
02819 "Patient","ResponsiblePerson",
02820 verbose,log,dict,
02821 Condition_IsAnimal,
02822 true,
02823 list,parentlist,rootlist,
02824 0,0)) success=false;
02825
02826 { Attribute *a = (*list)[TagFromName(ResponsiblePersonRole)]; if (a) a->setUsed(); }
02827 if (! verifyType1C
02828 (ResponsiblePersonRole,
02829 "Patient","ResponsiblePersonRole",
02830 verbose,log,dict,
02831 Condition_ResponsiblePersonIsPresentWithValue,
02832 false,
02833 list,parentlist,rootlist,
02834 0,0)) success=false;
02835
02836 if (Condition_ResponsiblePersonIsPresentWithValue(list,parentlist,rootlist)) {
02837 if (ResponsiblePersonRole) ResponsiblePersonRole->verifyDefinedTerms(
02838 StringValueDescription_ResponsiblePersonRole,
02839 verbose,log,dict,-1);
02840 }
02841
02842 { Attribute *a = (*list)[TagFromName(ResponsibleOrganization)]; if (a) a->setUsed(); }
02843 if (! verifyType2C
02844 (ResponsibleOrganization,
02845 "Patient","ResponsibleOrganization",
02846 verbose,log,dict,
02847 Condition_IsAnimal,
02848 true,
02849 list,parentlist,rootlist,
02850 0,0)) success=false;
02851
02852 { Attribute *a = (*list)[TagFromName(PatientIdentityRemoved)]; if (a) a->setUsed(); }
02853 if (! verifyType3
02854 (PatientIdentityRemoved,
02855 "Patient","PatientIdentityRemoved",
02856 verbose,log,dict,
02857 0,0)) success=false;
02858
02859 if (PatientIdentityRemoved && !PatientIdentityRemoved->verifyEnumValues(
02860 StringValueDescription_YesNoFull,
02861 verbose,log,dict,-1)) success=false;
02862
02863 { Attribute *a = (*list)[TagFromName(DeidentificationMethod)]; if (a) a->setUsed(); }
02864 if (! verifyType1C
02865 (DeidentificationMethod,
02866 "Patient","DeidentificationMethod",
02867 verbose,log,dict,
02868 Condition_PatientIdentityRemovedAndNotDeidentificationMethodCodeSequence,
02869 false,
02870 list,parentlist,rootlist,
02871 0,0)) success=false;
02872
02873 { Attribute *a = (*list)[TagFromName(DeidentificationMethodCodeSequence)]; if (a) a->setUsed(); }
02874 if (! verifyType1C
02875 (DeidentificationMethodCodeSequence,
02876 "Patient","DeidentificationMethodCodeSequence",
02877 verbose,log,dict,
02878 Condition_PatientIdentityRemovedAndNotDeidentificationMethod,
02879 false,
02880 list,parentlist,rootlist,
02881 1,VMUNLIMITED)) success=false;
02882 if (DeidentificationMethodCodeSequence && strcmp(DeidentificationMethodCodeSequence->getVR(),"SQ") == 0) {
02883 AttributeList **array;
02884 int n;
02885 if ((n=DeidentificationMethodCodeSequence->getLists(&array)) > 0) {
02886 int i; for (i=0; i<n; ++i) {
02887 AttributeList *parentlist=list;
02888 AttributeList *list=array[i];
02889 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
02890
02891 }
02892 }
02893 }
02894 return success;
02895 }
02896
02897 bool
02898 Module_ClinicalTrialSubject::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
02899 {
02900 const char *module = "ClinicalTrialSubject";
02901 (void)module;
02902 (void)list;
02903 (void)verbose;
02904 (void)log;
02905 (void)dict;
02906 Assert(list);
02907 Assert(dict);
02908 AttributeList *parentlist=0;
02909 AttributeList *rootlist=list;
02910
02911 bool success=true;
02912
02913 if (verbose)
02914 log << MMsgDC(Verifying) << " " << MMsgDC(Module) << " " << module << endl;
02915
02916 { Attribute *a = (*list)[TagFromName(ClinicalTrialSponsorName)]; if (a) a->setUsed(); }
02917 if (! verifyType1
02918 (ClinicalTrialSponsorName,
02919 "ClinicalTrialSubject","ClinicalTrialSponsorName",
02920 verbose,log,dict,
02921 0,0)) success=false;
02922
02923 { Attribute *a = (*list)[TagFromName(ClinicalTrialProtocolID)]; if (a) a->setUsed(); }
02924 if (! verifyType1
02925 (ClinicalTrialProtocolID,
02926 "ClinicalTrialSubject","ClinicalTrialProtocolID",
02927 verbose,log,dict,
02928 0,0)) success=false;
02929
02930 { Attribute *a = (*list)[TagFromName(ClinicalTrialProtocolName)]; if (a) a->setUsed(); }
02931 if (! verifyType2
02932 (ClinicalTrialProtocolName,
02933 "ClinicalTrialSubject","ClinicalTrialProtocolName",
02934 verbose,log,dict,
02935 0,0)) success=false;
02936
02937 { Attribute *a = (*list)[TagFromName(ClinicalTrialSiteID)]; if (a) a->setUsed(); }
02938 if (! verifyType2
02939 (ClinicalTrialSiteID,
02940 "ClinicalTrialSubject","ClinicalTrialSiteID",
02941 verbose,log,dict,
02942 0,0)) success=false;
02943
02944 { Attribute *a = (*list)[TagFromName(ClinicalTrialSiteName)]; if (a) a->setUsed(); }
02945 if (! verifyType2
02946 (ClinicalTrialSiteName,
02947 "ClinicalTrialSubject","ClinicalTrialSiteName",
02948 verbose,log,dict,
02949 0,0)) success=false;
02950
02951 { Attribute *a = (*list)[TagFromName(ClinicalTrialSubjectID)]; if (a) a->setUsed(); }
02952 if (! verifyType1C
02953 (ClinicalTrialSubjectID,
02954 "ClinicalTrialSubject","ClinicalTrialSubjectID",
02955 verbose,log,dict,
02956 Condition_ClinicalTrialSubjectReadingIDAbsent,
02957 true,
02958 list,parentlist,rootlist,
02959 0,0)) success=false;
02960
02961 { Attribute *a = (*list)[TagFromName(ClinicalTrialSubjectReadingID)]; if (a) a->setUsed(); }
02962 if (! verifyType1C
02963 (ClinicalTrialSubjectReadingID,
02964 "ClinicalTrialSubject","ClinicalTrialSubjectReadingID",
02965 verbose,log,dict,
02966 Condition_ClinicalTrialSubjectIDAbsent,
02967 true,
02968 list,parentlist,rootlist,
02969 0,0)) success=false;
02970
02971 return success;
02972 }
02973
02974 bool
02975 Module_GeneralStudy::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
02976 {
02977 const char *module = "GeneralStudy";
02978 (void)module;
02979 (void)list;
02980 (void)verbose;
02981 (void)log;
02982 (void)dict;
02983 Assert(list);
02984 Assert(dict);
02985 AttributeList *parentlist=0;
02986 AttributeList *rootlist=list;
02987
02988 bool success=true;
02989
02990 if (verbose)
02991 log << MMsgDC(Verifying) << " " << MMsgDC(Module) << " " << module << endl;
02992
02993 { Attribute *a = (*list)[TagFromName(StudyInstanceUID)]; if (a) a->setUsed(); }
02994 if (! verifyType1
02995 (StudyInstanceUID,
02996 "GeneralStudy","StudyInstanceUID",
02997 verbose,log,dict,
02998 0,0)) success=false;
02999
03000 { Attribute *a = (*list)[TagFromName(StudyDate)]; if (a) a->setUsed(); }
03001 if (! verifyType2
03002 (StudyDate,
03003 "GeneralStudy","StudyDate",
03004 verbose,log,dict,
03005 0,0)) success=false;
03006
03007 { Attribute *a = (*list)[TagFromName(StudyTime)]; if (a) a->setUsed(); }
03008 if (! verifyType2
03009 (StudyTime,
03010 "GeneralStudy","StudyTime",
03011 verbose,log,dict,
03012 0,0)) success=false;
03013
03014 { Attribute *a = (*list)[TagFromName(ReferringPhysicianName)]; if (a) a->setUsed(); }
03015 if (! verifyType2
03016 (ReferringPhysicianName,
03017 "GeneralStudy","ReferringPhysicianName",
03018 verbose,log,dict,
03019 0,0)) success=false;
03020
03021 { Attribute *a = (*list)[TagFromName(ReferringPhysicianIdentificationSequence)]; if (a) a->setUsed(); }
03022 if (! verifyType3
03023 (ReferringPhysicianIdentificationSequence,
03024 "GeneralStudy","ReferringPhysicianIdentificationSequence",
03025 verbose,log,dict,
03026 1,1)) success=false;
03027 if (ReferringPhysicianIdentificationSequence && strcmp(ReferringPhysicianIdentificationSequence->getVR(),"SQ") == 0) {
03028 AttributeList **array;
03029 int n;
03030 if ((n=ReferringPhysicianIdentificationSequence->getLists(&array)) > 0) {
03031 int i; for (i=0; i<n; ++i) {
03032 AttributeList *parentlist=list;
03033 AttributeList *list=array[i];
03034 if (Macro_PersonIdentificationMacro(list).verify(list,verbose,log,dict)) success=false;
03035
03036 }
03037 }
03038 }
03039 { Attribute *a = (*list)[TagFromName(StudyID)]; if (a) a->setUsed(); }
03040 if (! verifyType2
03041 (StudyID,
03042 "GeneralStudy","StudyID",
03043 verbose,log,dict,
03044 0,0)) success=false;
03045
03046 { Attribute *a = (*list)[TagFromName(AccessionNumber)]; if (a) a->setUsed(); }
03047 if (! verifyType2
03048 (AccessionNumber,
03049 "GeneralStudy","AccessionNumber",
03050 verbose,log,dict,
03051 0,0)) success=false;
03052
03053 { Attribute *a = (*list)[TagFromName(IssuerOfAccessionNumberSequence)]; if (a) a->setUsed(); }
03054 if (! verifyType3
03055 (IssuerOfAccessionNumberSequence,
03056 "GeneralStudy","IssuerOfAccessionNumberSequence",
03057 verbose,log,dict,
03058 1,1)) success=false;
03059 if (IssuerOfAccessionNumberSequence && strcmp(IssuerOfAccessionNumberSequence->getVR(),"SQ") == 0) {
03060 AttributeList **array;
03061 int n;
03062 if ((n=IssuerOfAccessionNumberSequence->getLists(&array)) > 0) {
03063 int i; for (i=0; i<n; ++i) {
03064 AttributeList *parentlist=list;
03065 AttributeList *list=array[i];
03066 if (Macro_HL7v2HierarchicDesignatorMacro(list).verify(list,verbose,log,dict)) success=false;
03067
03068 }
03069 }
03070 }
03071 { Attribute *a = (*list)[TagFromName(StudyDescription)]; if (a) a->setUsed(); }
03072 if (! verifyType3
03073 (StudyDescription,
03074 "GeneralStudy","StudyDescription",
03075 verbose,log,dict,
03076 0,0)) success=false;
03077
03078 { Attribute *a = (*list)[TagFromName(PhysicianOfRecord)]; if (a) a->setUsed(); }
03079 if (! verifyType3
03080 (PhysicianOfRecord,
03081 "GeneralStudy","PhysicianOfRecord",
03082 verbose,log,dict,
03083 0,0)) success=false;
03084
03085 { Attribute *a = (*list)[TagFromName(PhysicianOfRecordIdentificationSequence)]; if (a) a->setUsed(); }
03086 if (! verifyType3
03087 (PhysicianOfRecordIdentificationSequence,
03088 "GeneralStudy","PhysicianOfRecordIdentificationSequence",
03089 verbose,log,dict,
03090 1,VMUNLIMITED)) success=false;
03091 if (PhysicianOfRecordIdentificationSequence && strcmp(PhysicianOfRecordIdentificationSequence->getVR(),"SQ") == 0) {
03092 AttributeList **array;
03093 int n;
03094 if ((n=PhysicianOfRecordIdentificationSequence->getLists(&array)) > 0) {
03095 int i; for (i=0; i<n; ++i) {
03096 AttributeList *parentlist=list;
03097 AttributeList *list=array[i];
03098 if (Macro_PersonIdentificationMacro(list).verify(list,verbose,log,dict)) success=false;
03099
03100 }
03101 }
03102 }
03103 { Attribute *a = (*list)[TagFromName(PhysicianReadingStudy)]; if (a) a->setUsed(); }
03104 if (! verifyType3
03105 (PhysicianReadingStudy,
03106 "GeneralStudy","PhysicianReadingStudy",
03107 verbose,log,dict,
03108 0,0)) success=false;
03109
03110 { Attribute *a = (*list)[TagFromName(PhysicianReadingStudyIdentificationSequence)]; if (a) a->setUsed(); }
03111 if (! verifyType3
03112 (PhysicianReadingStudyIdentificationSequence,
03113 "GeneralStudy","PhysicianReadingStudyIdentificationSequence",
03114 verbose,log,dict,
03115 1,VMUNLIMITED)) success=false;
03116 if (PhysicianReadingStudyIdentificationSequence && strcmp(PhysicianReadingStudyIdentificationSequence->getVR(),"SQ") == 0) {
03117 AttributeList **array;
03118 int n;
03119 if ((n=PhysicianReadingStudyIdentificationSequence->getLists(&array)) > 0) {
03120 int i; for (i=0; i<n; ++i) {
03121 AttributeList *parentlist=list;
03122 AttributeList *list=array[i];
03123 if (Macro_PersonIdentificationMacro(list).verify(list,verbose,log,dict)) success=false;
03124
03125 }
03126 }
03127 }
03128 { Attribute *a = (*list)[TagFromName(ReferencedStudySequence)]; if (a) a->setUsed(); }
03129 if (! verifyType3
03130 (ReferencedStudySequence,
03131 "GeneralStudy","ReferencedStudySequence",
03132 verbose,log,dict,
03133 0,VMUNLIMITED)) success=false;
03134 if (ReferencedStudySequence && strcmp(ReferencedStudySequence->getVR(),"SQ") == 0) {
03135 AttributeList **array;
03136 int n;
03137 if ((n=ReferencedStudySequence->getLists(&array)) > 0) {
03138 int i; for (i=0; i<n; ++i) {
03139 AttributeList *parentlist=list;
03140 AttributeList *list=array[i];
03141 if (Macro_SOPInstanceReferenceMacro(list).verify(list,verbose,log,dict)) success=false;
03142
03143 }
03144 }
03145 }
03146 { Attribute *a = (*list)[TagFromName(ProcedureCodeSequence)]; if (a) a->setUsed(); }
03147 if (! verifyType3
03148 (ProcedureCodeSequence,
03149 "GeneralStudy","ProcedureCodeSequence",
03150 verbose,log,dict,
03151 1,VMUNLIMITED)) success=false;
03152 if (ProcedureCodeSequence && strcmp(ProcedureCodeSequence->getVR(),"SQ") == 0) {
03153 AttributeList **array;
03154 int n;
03155 if ((n=ProcedureCodeSequence->getLists(&array)) > 0) {
03156 int i; for (i=0; i<n; ++i) {
03157 AttributeList *parentlist=list;
03158 AttributeList *list=array[i];
03159 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
03160
03161 }
03162 }
03163 }
03164 return success;
03165 }
03166
03167 bool
03168 Module_PatientStudy::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
03169 {
03170 const char *module = "PatientStudy";
03171 (void)module;
03172 (void)list;
03173 (void)verbose;
03174 (void)log;
03175 (void)dict;
03176 Assert(list);
03177 Assert(dict);
03178 AttributeList *parentlist=0;
03179 AttributeList *rootlist=list;
03180
03181 bool success=true;
03182
03183 if (verbose)
03184 log << MMsgDC(Verifying) << " " << MMsgDC(Module) << " " << module << endl;
03185
03186 { Attribute *a = (*list)[TagFromName(AdmittingDiagnosesDescription)]; if (a) a->setUsed(); }
03187 if (! verifyType3
03188 (AdmittingDiagnosesDescription,
03189 "PatientStudy","AdmittingDiagnosesDescription",
03190 verbose,log,dict,
03191 0,0)) success=false;
03192
03193 { Attribute *a = (*list)[TagFromName(AdmittingDiagnosesCodeSequence)]; if (a) a->setUsed(); }
03194 if (! verifyType3
03195 (AdmittingDiagnosesCodeSequence,
03196 "PatientStudy","AdmittingDiagnosesCodeSequence",
03197 verbose,log,dict,
03198 1,VMUNLIMITED)) success=false;
03199 if (AdmittingDiagnosesCodeSequence && strcmp(AdmittingDiagnosesCodeSequence->getVR(),"SQ") == 0) {
03200 AttributeList **array;
03201 int n;
03202 if ((n=AdmittingDiagnosesCodeSequence->getLists(&array)) > 0) {
03203 int i; for (i=0; i<n; ++i) {
03204 AttributeList *parentlist=list;
03205 AttributeList *list=array[i];
03206 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
03207
03208 }
03209 }
03210 }
03211 { Attribute *a = (*list)[TagFromName(PatientAge)]; if (a) a->setUsed(); }
03212 if (! verifyType3
03213 (PatientAge,
03214 "PatientStudy","PatientAge",
03215 verbose,log,dict,
03216 0,0)) success=false;
03217
03218 { Attribute *a = (*list)[TagFromName(PatientSize)]; if (a) a->setUsed(); }
03219 if (! verifyType3
03220 (PatientSize,
03221 "PatientStudy","PatientSize",
03222 verbose,log,dict,
03223 0,0)) success=false;
03224
03225 { Attribute *a = (*list)[TagFromName(PatientWeight)]; if (a) a->setUsed(); }
03226 if (! verifyType3
03227 (PatientWeight,
03228 "PatientStudy","PatientWeight",
03229 verbose,log,dict,
03230 0,0)) success=false;
03231
03232 { Attribute *a = (*list)[TagFromName(Occupation)]; if (a) a->setUsed(); }
03233 if (! verifyType3
03234 (Occupation,
03235 "PatientStudy","Occupation",
03236 verbose,log,dict,
03237 0,0)) success=false;
03238
03239 { Attribute *a = (*list)[TagFromName(AdditionalPatientHistory)]; if (a) a->setUsed(); }
03240 if (! verifyType3
03241 (AdditionalPatientHistory,
03242 "PatientStudy","AdditionalPatientHistory",
03243 verbose,log,dict,
03244 0,0)) success=false;
03245
03246 { Attribute *a = (*list)[TagFromName(AdmissionID)]; if (a) a->setUsed(); }
03247 if (! verifyType3
03248 (AdmissionID,
03249 "PatientStudy","AdmissionID",
03250 verbose,log,dict,
03251 0,0)) success=false;
03252
03253 { Attribute *a = (*list)[TagFromName(IssuerOfAdmissionID)]; if (a) a->setUsed(); }
03254 if (! verifyType3
03255 (IssuerOfAdmissionID,
03256 "PatientStudy","IssuerOfAdmissionID",
03257 verbose,log,dict,
03258 0,0)) success=false;
03259
03260 { Attribute *a = (*list)[TagFromName(IssuerOfAdmissionIDSequence)]; if (a) a->setUsed(); }
03261 if (! verifyType3
03262 (IssuerOfAdmissionIDSequence,
03263 "PatientStudy","IssuerOfAdmissionIDSequence",
03264 verbose,log,dict,
03265 1,1)) success=false;
03266 if (IssuerOfAdmissionIDSequence && strcmp(IssuerOfAdmissionIDSequence->getVR(),"SQ") == 0) {
03267 AttributeList **array;
03268 int n;
03269 if ((n=IssuerOfAdmissionIDSequence->getLists(&array)) > 0) {
03270 int i; for (i=0; i<n; ++i) {
03271 AttributeList *parentlist=list;
03272 AttributeList *list=array[i];
03273 if (Macro_HL7v2HierarchicDesignatorMacro(list).verify(list,verbose,log,dict)) success=false;
03274
03275 }
03276 }
03277 }
03278 { Attribute *a = (*list)[TagFromName(ServiceEpisodeID)]; if (a) a->setUsed(); }
03279 if (! verifyType3
03280 (ServiceEpisodeID,
03281 "PatientStudy","ServiceEpisodeID",
03282 verbose,log,dict,
03283 0,0)) success=false;
03284
03285 { Attribute *a = (*list)[TagFromName(IssuerOfServiceEpisodeIDSequence)]; if (a) a->setUsed(); }
03286 if (! verifyType3
03287 (IssuerOfServiceEpisodeIDSequence,
03288 "PatientStudy","IssuerOfServiceEpisodeIDSequence",
03289 verbose,log,dict,
03290 1,1)) success=false;
03291 if (IssuerOfServiceEpisodeIDSequence && strcmp(IssuerOfServiceEpisodeIDSequence->getVR(),"SQ") == 0) {
03292 AttributeList **array;
03293 int n;
03294 if ((n=IssuerOfServiceEpisodeIDSequence->getLists(&array)) > 0) {
03295 int i; for (i=0; i<n; ++i) {
03296 AttributeList *parentlist=list;
03297 AttributeList *list=array[i];
03298 if (Macro_HL7v2HierarchicDesignatorMacro(list).verify(list,verbose,log,dict)) success=false;
03299
03300 }
03301 }
03302 }
03303 { Attribute *a = (*list)[TagFromName(ServiceEpisodeDescription)]; if (a) a->setUsed(); }
03304 if (! verifyType3
03305 (ServiceEpisodeDescription,
03306 "PatientStudy","ServiceEpisodeDescription",
03307 verbose,log,dict,
03308 0,0)) success=false;
03309
03310 { Attribute *a = (*list)[TagFromName(PatientSexNeutered)]; if (a) a->setUsed(); }
03311 if (! verifyType2C
03312 (PatientSexNeutered,
03313 "PatientStudy","PatientSexNeutered",
03314 verbose,log,dict,
03315 Condition_IsAnimal,
03316 true,
03317 list,parentlist,rootlist,
03318 0,0)) success=false;
03319
03320 if (Condition_IsAnimal(list,parentlist,rootlist)) {
03321 if (PatientSexNeutered && !PatientSexNeutered->verifyEnumValues(
03322 StringValueDescription_PatientSexNeutered,
03323 verbose,log,dict,-1)) success=false;
03324 }
03325
03326 return success;
03327 }
03328
03329 bool
03330 Module_ClinicalTrialStudy::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
03331 {
03332 const char *module = "ClinicalTrialStudy";
03333 (void)module;
03334 (void)list;
03335 (void)verbose;
03336 (void)log;
03337 (void)dict;
03338 Assert(list);
03339 Assert(dict);
03340 AttributeList *parentlist=0;
03341 AttributeList *rootlist=list;
03342
03343 bool success=true;
03344
03345 if (verbose)
03346 log << MMsgDC(Verifying) << " " << MMsgDC(Module) << " " << module << endl;
03347
03348 { Attribute *a = (*list)[TagFromName(ClinicalTrialTimePointID)]; if (a) a->setUsed(); }
03349 if (! verifyType2
03350 (ClinicalTrialTimePointID,
03351 "ClinicalTrialStudy","ClinicalTrialTimePointID",
03352 verbose,log,dict,
03353 0,0)) success=false;
03354
03355 { Attribute *a = (*list)[TagFromName(ClinicalTrialTimePointDescription)]; if (a) a->setUsed(); }
03356 if (! verifyType3
03357 (ClinicalTrialTimePointDescription,
03358 "ClinicalTrialStudy","ClinicalTrialTimePointDescription",
03359 verbose,log,dict,
03360 0,0)) success=false;
03361
03362 return success;
03363 }
03364
03365 bool
03366 Module_GeneralSeries::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
03367 {
03368 const char *module = "GeneralSeries";
03369 (void)module;
03370 (void)list;
03371 (void)verbose;
03372 (void)log;
03373 (void)dict;
03374 Assert(list);
03375 Assert(dict);
03376 AttributeList *parentlist=0;
03377 AttributeList *rootlist=list;
03378
03379 bool success=true;
03380
03381 if (verbose)
03382 log << MMsgDC(Verifying) << " " << MMsgDC(Module) << " " << module << endl;
03383
03384 { Attribute *a = (*list)[TagFromName(Modality)]; if (a) a->setUsed(); }
03385 if (! verifyType1
03386 (Modality,
03387 "GeneralSeries","Modality",
03388 verbose,log,dict,
03389 0,0)) success=false;
03390
03391 if (Modality) Modality->verifyDefinedTerms(
03392 StringValueDescription_Modality,
03393 verbose,log,dict,-1);
03394
03395 { Attribute *a = (*list)[TagFromName(SeriesInstanceUID)]; if (a) a->setUsed(); }
03396 if (! verifyType1
03397 (SeriesInstanceUID,
03398 "GeneralSeries","SeriesInstanceUID",
03399 verbose,log,dict,
03400 0,0)) success=false;
03401
03402 { Attribute *a = (*list)[TagFromName(SeriesNumber)]; if (a) a->setUsed(); }
03403 if (! verifyType2
03404 (SeriesNumber,
03405 "GeneralSeries","SeriesNumber",
03406 verbose,log,dict,
03407 0,0)) success=false;
03408
03409 { Attribute *a = (*list)[TagFromName(Laterality)]; if (a) a->setUsed(); }
03410 if (! verifyType2C
03411 (Laterality,
03412 "GeneralSeries","Laterality",
03413 verbose,log,dict,
03414 Condition_LateralityRequired,
03415 false,
03416 list,parentlist,rootlist,
03417 0,0)) success=false;
03418
03419 if (Condition_LateralityRequired(list,parentlist,rootlist)) {
03420 if (Laterality && !Laterality->verifyEnumValues(
03421 StringValueDescription_Laterality,
03422 verbose,log,dict,-1)) success=false;
03423 }
03424
03425
03426 if (Condition_LateralityHasNoValue(list,parentlist,rootlist)) {
03427 log << WMsgDCNull() << "is only permitted to be empty when actually unknown; should be absent (not empty) if an unpaired body part, and have a value if a paired body part - attribute <Laterality>"
03428 << endl;
03429 }
03430
03431 { Attribute *a = (*list)[TagFromName(SeriesDate)]; if (a) a->setUsed(); }
03432 if (! verifyType3
03433 (SeriesDate,
03434 "GeneralSeries","SeriesDate",
03435 verbose,log,dict,
03436 0,0)) success=false;
03437
03438 { Attribute *a = (*list)[TagFromName(SeriesTime)]; if (a) a->setUsed(); }
03439 if (! verifyType3
03440 (SeriesTime,
03441 "GeneralSeries","SeriesTime",
03442 verbose,log,dict,
03443 0,0)) success=false;
03444
03445 { Attribute *a = (*list)[TagFromName(PerformingPhysicianName)]; if (a) a->setUsed(); }
03446 if (! verifyType3
03447 (PerformingPhysicianName,
03448 "GeneralSeries","PerformingPhysicianName",
03449 verbose,log,dict,
03450 0,0)) success=false;
03451
03452 { Attribute *a = (*list)[TagFromName(PerformingPhysicianIdentificationSequence)]; if (a) a->setUsed(); }
03453 if (! verifyType3
03454 (PerformingPhysicianIdentificationSequence,
03455 "GeneralSeries","PerformingPhysicianIdentificationSequence",
03456 verbose,log,dict,
03457 1,VMUNLIMITED)) success=false;
03458 if (PerformingPhysicianIdentificationSequence && strcmp(PerformingPhysicianIdentificationSequence->getVR(),"SQ") == 0) {
03459 AttributeList **array;
03460 int n;
03461 if ((n=PerformingPhysicianIdentificationSequence->getLists(&array)) > 0) {
03462 int i; for (i=0; i<n; ++i) {
03463 AttributeList *parentlist=list;
03464 AttributeList *list=array[i];
03465 if (Macro_PersonIdentificationMacro(list).verify(list,verbose,log,dict)) success=false;
03466
03467 }
03468 }
03469 }
03470 { Attribute *a = (*list)[TagFromName(ProtocolName)]; if (a) a->setUsed(); }
03471 if (! verifyType3
03472 (ProtocolName,
03473 "GeneralSeries","ProtocolName",
03474 verbose,log,dict,
03475 0,0)) success=false;
03476
03477 { Attribute *a = (*list)[TagFromName(SeriesDescription)]; if (a) a->setUsed(); }
03478 if (! verifyType3
03479 (SeriesDescription,
03480 "GeneralSeries","SeriesDescription",
03481 verbose,log,dict,
03482 0,0)) success=false;
03483
03484 { Attribute *a = (*list)[TagFromName(OperatorName)]; if (a) a->setUsed(); }
03485 if (! verifyType3
03486 (OperatorName,
03487 "GeneralSeries","OperatorName",
03488 verbose,log,dict,
03489 0,0)) success=false;
03490
03491 { Attribute *a = (*list)[TagFromName(OperatorIdentificationSequence)]; if (a) a->setUsed(); }
03492 if (! verifyType3
03493 (OperatorIdentificationSequence,
03494 "GeneralSeries","OperatorIdentificationSequence",
03495 verbose,log,dict,
03496 1,VMUNLIMITED)) success=false;
03497 if (OperatorIdentificationSequence && strcmp(OperatorIdentificationSequence->getVR(),"SQ") == 0) {
03498 AttributeList **array;
03499 int n;
03500 if ((n=OperatorIdentificationSequence->getLists(&array)) > 0) {
03501 int i; for (i=0; i<n; ++i) {
03502 AttributeList *parentlist=list;
03503 AttributeList *list=array[i];
03504 if (Macro_PersonIdentificationMacro(list).verify(list,verbose,log,dict)) success=false;
03505
03506 }
03507 }
03508 }
03509 { Attribute *a = (*list)[TagFromName(ReferencedPerformedProcedureStepSequence)]; if (a) a->setUsed(); }
03510 if (! verifyType3
03511 (ReferencedPerformedProcedureStepSequence,
03512 "GeneralSeries","ReferencedPerformedProcedureStepSequence",
03513 verbose,log,dict,
03514 0,1)) success=false;
03515 if (ReferencedPerformedProcedureStepSequence && strcmp(ReferencedPerformedProcedureStepSequence->getVR(),"SQ") == 0) {
03516 AttributeList **array;
03517 int n;
03518 if ((n=ReferencedPerformedProcedureStepSequence->getLists(&array)) > 0) {
03519 int i; for (i=0; i<n; ++i) {
03520 AttributeList *parentlist=list;
03521 AttributeList *list=array[i];
03522 if (Macro_SOPInstanceReferenceMacro(list).verify(list,verbose,log,dict)) success=false;
03523
03524 }
03525 }
03526 }
03527 { Attribute *a = (*list)[TagFromName(RelatedSeriesSequence)]; if (a) a->setUsed(); }
03528 if (! verifyType3
03529 (RelatedSeriesSequence,
03530 "GeneralSeries","RelatedSeriesSequence",
03531 verbose,log,dict,
03532 0,VMUNLIMITED)) success=false;
03533 if (RelatedSeriesSequence && strcmp(RelatedSeriesSequence->getVR(),"SQ") == 0) {
03534 AttributeList **array;
03535 int n;
03536 if ((n=RelatedSeriesSequence->getLists(&array)) > 0) {
03537 int i; for (i=0; i<n; ++i) {
03538 AttributeList *parentlist=list;
03539 AttributeList *list=array[i];
03540 Attribute *StudyInstanceUID = (*list)[TagFromName(StudyInstanceUID)];
03541 { Attribute *a = (*list)[TagFromName(StudyInstanceUID)]; if (a) a->setUsed(); }
03542 if (! verifyType1
03543 (StudyInstanceUID,
03544 "GeneralSeries","StudyInstanceUID",
03545 verbose,log,dict,
03546 0,0)) success=false;
03547
03548 Attribute *SeriesInstanceUID = (*list)[TagFromName(SeriesInstanceUID)];
03549 { Attribute *a = (*list)[TagFromName(SeriesInstanceUID)]; if (a) a->setUsed(); }
03550 if (! verifyType1
03551 (SeriesInstanceUID,
03552 "GeneralSeries","SeriesInstanceUID",
03553 verbose,log,dict,
03554 0,0)) success=false;
03555
03556 Attribute *PurposeOfReferenceCodeSequence = (*list)[TagFromName(PurposeOfReferenceCodeSequence)];
03557 { Attribute *a = (*list)[TagFromName(PurposeOfReferenceCodeSequence)]; if (a) a->setUsed(); }
03558 if (! verifyType2
03559 (PurposeOfReferenceCodeSequence,
03560 "GeneralSeries","PurposeOfReferenceCodeSequence",
03561 verbose,log,dict,
03562 0,VMUNLIMITED)) success=false;
03563 if (PurposeOfReferenceCodeSequence && strcmp(PurposeOfReferenceCodeSequence->getVR(),"SQ") == 0) {
03564 AttributeList **array;
03565 int n;
03566 if ((n=PurposeOfReferenceCodeSequence->getLists(&array)) > 0) {
03567 int i; for (i=0; i<n; ++i) {
03568 AttributeList *parentlist=list;
03569 AttributeList *list=array[i];
03570 if (Macro_CodeSequenceMacro(list).verify(list,verbose,log,dict)) success=false;
03571
03572 }
03573 }
03574 }
03575 }
03576 }
03577 }
03578 { Attribute *a = (*list)[TagFromName(BodyPartExamined)]; if (a) a->setUsed(); }
03579 if (! verifyType3
03580 (BodyPartExamined,
03581 "GeneralSeries","BodyPartExamined",
03582 verbose,log,dict,
03583 0,0)) success=false;
03584
03585 if (BodyPartExamined) BodyPartExamined->verifyDefinedTerms(
03586 StringValueDescription_BodyPartExamined,
03587 verbose,log,dict,-1);
03588
03589 { Attribute *a = (*list)[TagFromName(PatientPosition)]; if (a) a->setUsed(); }
03590 if (! verifyType2C
03591 (PatientPosition,
03592 "GeneralSeries","PatientPosition",
03593 verbose,log,dict,
03594 Condition_SOPClassIsCTOrMR,
03595 true,
03596 list,parentlist,rootlist,
03597 0,0)) success=false;
03598
03599 if (Condition_SOPClassIsCTOrMR(list,parentlist,rootlist)) {
03600 if (PatientPosition) PatientPosition->verifyDefinedTerms(
03601 StringValueDescription_PatientPosition,
03602 verbose,log,dict,-1);
03603 }
03604
03605
03606 if (Condition_PatientPositionAndPatientOrientationCodeSequencePresent(list,parentlist,rootlist)) {
03607 log << EMsgDCNull() << "May not be present when PatientOrientationCodeSequence is present - attribute <PatientPosition>"
03608 << endl;
03609 }
03610
03611 { Attribute *a = (*list)[TagFromName(SmallestPixelValueInSeries)]; if (a) a->setUsed(); }
03612 if (! verifyType3
03613 (SmallestPixelValueInSeries,
03614 "GeneralSeries","SmallestPixelValueInSeries",
03615 verbose,log,dict,
03616 0,0)) success=false;
03617
03618 { Attribute *a = (*list)[TagFromName(LargestPixelValueInSeries)]; if (a) a->setUsed(); }
03619 if (! verifyType3
03620 (LargestPixelValueInSeries,
03621 "GeneralSeries","LargestPixelValueInSeries",
03622 verbose,log,dict,
03623 0,0)) success=false;
03624
03625 { Attribute *a = (*list)[TagFromName(RequestAttributesSequence)]; if (a) a->setUsed(); }
03626 if (! verifyType3
03627 (RequestAttributesSequence,
03628 "GeneralSeries","RequestAttributesSequence",
03629 verbose,log,dict,
03630 1,VMUNLIMITED)) success=false;
03631 if (RequestAttributesSequence && strcmp(RequestAttributesSequence->getVR(),"SQ") == 0) {
03632 AttributeList **array;
03633 int n;
03634 if ((n=RequestAttributesSequence->getLists(&array)) > 0) {
03635 int i; for (i=0; i<n; ++i) {
03636 AttributeList *parentlist=list;
03637 AttributeList *list=array[i];
03638 if (Macro_RequestAttributesMacro(list).verify(list,verbose,log,dict)) success=false;
03639
03640 }
03641 }
03642 }
03643 if (Macro_PerformedProcedureStepSummaryMacro(list).verify(list,verbose,log,dict)) success=false;
03644
03645 return success;
03646 }
03647
03648 bool
03649 Module_ClinicalTrialSeries::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
03650 {
03651 const char *module = "ClinicalTrialSeries";
03652 (void)module;
03653 (void)list;
03654 (void)verbose;
03655 (void)log;
03656 (void)dict;
03657 Assert(list);
03658 Assert(dict);
03659 AttributeList *parentlist=0;
03660 AttributeList *rootlist=list;
03661
03662 bool success=true;
03663
03664 if (verbose)
03665 log << MMsgDC(Verifying) << " " << MMsgDC(Module) << " " << module << endl;
03666
03667 { Attribute *a = (*list)[TagFromName(ClinicalTrialCoordinatingCenterName)]; if (a) a->setUsed(); }
03668 if (! verifyType2
03669 (ClinicalTrialCoordinatingCenterName,
03670 "ClinicalTrialSeries","ClinicalTrialCoordinatingCenterName",
03671 verbose,log,dict,
03672 0,0)) success=false;
03673
03674 { Attribute *a = (*list)[TagFromName(ClinicalTrialSeriesID)]; if (a) a->setUsed(); }
03675 if (! verifyType3
03676 (ClinicalTrialSeriesID,
03677 "ClinicalTrialSeries","ClinicalTrialSeriesID",
03678 verbose,log,dict,
03679 0,0)) success=false;
03680
03681 { Attribute *a = (*list)[TagFromName(ClinicalTrialSeriesDescription)]; if (a) a->setUsed(); }
03682 if (! verifyType3
03683 (ClinicalTrialSeriesDescription,
03684 "ClinicalTrialSeries","ClinicalTrialSeriesDescription",
03685 verbose,log,dict,
03686 0,0)) success=false;
03687
03688 return success;
03689 }
03690
03691 bool
03692 Module_EnhancedSeries::verify(AttributeList *list,bool verbose,TextOutputStream& log,ElementDictionary *dict) const
03693 {
03694 const char *module = "EnhancedSeries";
03695 (void)module;
03696 (void)list;
03697 (void)verbose;
03698 (void)log;
03699 (void)dict;
03700 Assert(list);
03701 Assert(dict);
03702 AttributeList *parentlist=0;
03703 AttributeList *rootlist=list;
03704
03705 bool success=true;
03706
03707 if (verbose)
03708 log << MMsgDC(Verifying) << " " << MMsgDC(Module) << " " << module << endl;
03709
03710 { Attribute *a = (*list)[TagFromName(SeriesNumber)]; if (a) a->setUsed(); }
03711 if (! verifyType1
03712 (