modulev.h

Go to the documentation of this file.
00001 // Automatically generated from template - EDITS WILL BE LOST
00002 
00003 // Generated by module.awk with options verify modulev
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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;  // Quiets compiler in case module empty
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                         (