37 bool useEnhancedSeriesNumber=
false,
38 const std::string &modality=
"",
39 bool forceSeriesInstanceUIDAsType1=
false);
72 DoNotWriteLateralityTag = 0,
79 enum { NumLateralityEnumerators = 4 };
82 static const char *
const LateralityStringValues[NumLateralityEnumerators];
100 enum { NumLateralityChecksEnumerators = 3 };
103 static const char *
const LateralityChecksStringValues[NumLateralityChecksEnumerators];
115 ABDOMEN=0, ABDOMENPELVIS, ADRENAL, ANKLE, AORTA, ARM, ATLANTOAXIAL, ATLANTOOCCIPITAL,
116 AXILLA, BACK, BLADDER, BRAIN, BREAST, BRONCHUS, BUTTOCK, CALCANEUS,
117 CALF, CAROTID, CARPUS, CEREBELLUM, CERVIX, CHEEK, CHEST, CHESTABDOMEN,
119 CTSPINE, DIGIT, DISTALPHALANX, DUODENUM, EAR, ELBOW, ESOPHAGUS, EXTREMITY,
120 EYE, EYELID, FACE, FEMUR, FIBULA, FINGER, FOOT, FOREFETLOCK,
121 FOREFOOT, FORENAVICULAR, FOREPASTERN, FRONTALSINUS, GALLBLADDER, HAND, HEAD, HEADNECK,
122 HEART, HINDFETLOCK, HINDFOOT, HINDNAVICULAR, HINDPASTERN, HIP, HUMERUS, IAC,
123 ILEUM, ILIUM, JAW, JEJUNUM, KIDNEY, KNEE, LARYNX, LEG,
124 LEGS, LIVER, LSPINE, LSSPINE, LUNG, MAXILLA, MEDIASTINUM, METACARPUS,
125 METATARSUS, MOUTH, NECK, NECKCHEST, NECKCHESTABDOMEN, NECKCHESTABDPELV, NOSE, ORBIT,
126 OVARY, PANCREAS, PAROTID, PATELLA, PELVIS, PENIS, PHARYNX,
127 PROSTATE, RADIUS, RADIUSULNA, RECTUM, RIB, SCALP, SCAPULA, SCLERA,
128 SCROTUM, SHOULDER, SKULL, SPINE, SPLEEN, SSPINE, STERNUM, STIFLE,
129 STOMACH, SUBMANDIBULAR, TAIL, TARSUS, TESTIS, THIGH, THUMB, THYMUS,
130 THYROID, TIBIA, TIBIAFIBULA, TLSPINE, TMJ, TOE, TONGUE, TRACHEA,
131 TSPINE, UGITRACT, ULNA, URETER, URETHRA, URINARYTRACT, UTERUS, VAGINA,
132 VULVA, WHOLEBODY, WING, WRIST, ZYGOMA
136 enum { NumBodyPartExaminedValues = 140 };
139 static const char *
const BodyPartExaminedStringValues[NumBodyPartExaminedValues];
142 enum { NumUnpairedBodyPartExaminedValues = 74 };
145 static const char *
const UnpairedBodyPartExaminedStringValues[NumUnpairedBodyPartExaminedValues];
Project global and OS specific declarations.
#define MLDICOMTAGINTERFACES_EXPORT
DLL export macro definition.
Field to encapsulate a boolean value.
Manages the module field interface according to DICOM General Series, C.7.3.1.
StringField * _bodyPartExaminedFld
Value of possibly inherited BodyPartExamined tag.
StringField * _bodyPartExaminedValuesFld
Available values for _bodyPartExaminedFld.
const std::string _modality
If not empty then the content will be set as Modality tag, otherwise ignored.
StringField * _seriesNumberFld
Content of the corresponding DICOM tag definition.
BoolField * _inheritSeriesNumberFld
If true then the seriesNumber field is overwritten with inherited states, otherwise not.
LateralityValues
Enumerator for the laterality tag.
@ WriteEmptyLateralityTag
Write the tag with empty value.
@ Left
Write the tag with value "L".
const bool _useEnhancedSeriesNumber
If true then Series Number will be checked to be non-empty.
FieldAddOnBase::FieldChangeState handleFieldChanges(Field *field) override
Handle field notifications.
DicomGeneralSeriesModuleTagInterface(Module &modRef, bool useEnhancedSeriesNumber=false, const std::string &modality="", bool forceSeriesInstanceUIDAsType1=false)
Constructor, setting the reference of the module for which the fields shall be managed.
void inheritValues(DCMTree::Const_TreePtr dcmTree) override
Implements the copy of tag values from the given dcmTree to the fields.
DicomValueInheritAndCreateTagInterface _seriesInstanceUIDAddOn
Fields.
BodyPartExaminedValues
Available values for BodyPartExaminedValues.
LateralityChecksValues
Enumerator for modes of laterality checks tag.
@ AsWarning
Log a possible problem as console warning.
BoolField * _writeBodyPartExaminedFld
Enables/disabled whether bodyPartExamined shall be written or not.
BoolField * _useEmptyLateralityTagIfNotFoundOnInheritanceFld
If true then WriteEmptyLateralityTag is selected on inheritance even if no one laterality tag was fou...
EnumField * _lateralityFld
Laterality tag (0020,0060), type 2C.
EnumField * _lateralityChecksFld
Checking for valid combinations of Laterality and BodyPartExamined values is difficult and still inco...
void addFields() override
Add fields to field container of module.
std::string checkConsistency() const override
Checks for invalid parameters; return textual description on error, or empty string on success.
DicomCopyTagSetInterface _otherGeneralSeriesTags
All other General Series tags not available in the interface, allow public access.
StringField * _seriesDescriptionFld
Describes the series for which this DICOM file is created.
std::string applyModifications(DCMTree::TreePtr dcmTree, const FieldContainer *treeInfos=nullptr) override
See DicomModifyFieldAddOnBase::applyModifications() for documentation.
The class DicomModifyFieldAddOnBase is dedicated to manage fields for ML modules and instances derive...
FieldAddOn class supporting inheritance and auto creating tag values (for example DICOM UIDs or tag v...
Field to encapsulate an enumerated value.
FieldChangeState
Describes the type of a field changes detected in handleFieldChanges(Field *field).
Defines the class FieldContainer to encapsulate a vector of fields (see class Field).
Base class for all fields used in the ML.
Base class for an image processing module of the ML.
Field to encapsulate a string value.
Header file of the DicomModifyFieldAddOnBase class dedicated to manage fields for ML modules and inst...
Header file for the FieldAddOn supporting inheritance and auto creating tag values (for example DICOM...
boost::shared_ptr< const Tree > Const_TreePtr
boost::shared_ptr< Tree > TreePtr
Shared pointer to a DCMTree::Tree.