MeVisLab Toolbox Reference
mlDicomManufacturing3DModelModuleTagInterface.h
Go to the documentation of this file.
1 // Copyright (c) Fraunhofer MEVIS, Germany. All rights reserved.
2 // **InsertLicense** code
3 //----------------------------------------------------------------------------------
5 
10 //----------------------------------------------------------------------------------
11 #pragma once
12 
18 
19 ML_START_NAMESPACE
20 
21 //----------------------------------------------------------------------------------
24 //----------------------------------------------------------------------------------
26 {
27 public:
30 
32  void addFields() override;
33 
36 
39 
41  void inheritValues(DCMTree::Const_TreePtr dcmTree) override;
42 
45  std::string applyModifications(DCMTree::TreePtr dcmTree,
46  const FieldContainer *treeInfos=nullptr) override;
47 
51  std::string checkConsistency() const override;
52 
55 
59 
66 
71 
72 protected:
74  friend class DicomManufacturing3DModelModuleTagInterfaceUnitTest_fieldChecks_Test;
75 
76  // Model Usage Sequence (0068,7003)
77  // Specifies the use for which the manufactured object is intended.
78  // Only a single Item is permitted in this Sequence.
79 
83 
84  // Icon Image Sequence (0088,0200)
85  // A preview image representing the rendered model.
86  // Only a single Item is permitted in this Sequence.
87 
88  // Derivation Algorithm Sequence (0022,1612)
89  // Software algorithm that created the 3D model.
90  // Only a single Item shall be included in this Sequence.
91 
92  // Model Group UID (0068,7004), uniquely identifies a group to which the model belongs.
93  // Manufacturing models that share the same Model Group UID are
94  // considered distinct parts within the same assembly.
95 
96  // Recommended Display CIELab Value, (0062,000D)
97  // Specifies the color recommended to be used for the model. This
98  // color applies both when digitally displaying the model and when
99  // selecting material for manufacturing.
100  // This would typically be used to visually distinguish between models
101  // that are part of the same assembly and/or provide best analog to
102  // real world appearance.
103  // The units are specified in PCS-Values, and the value is encoded as
104  // CIELab.
105  // This value may be superseded by individual colors that have been
106  // specified inside the encapsulated model (when the encapsulated
107  // format allows this).
108 
109  // Recommended Presentation Opacity (0066,000C)
110  // Specifies the opacity recommended to be used for the model. This
111  // opacity applies both when digitally displaying the model and when
112  // selecting material for manufacturing.
113  // A non-opaque value would typically be specified when either (a)
114  // another model grouped in the same assembly needs to be visible
115  // behind or inside this model, or (b) the model represents anatomy
116  // that is not fully opaque.
117  // If not present, then it is assumed the model should be presented
118  // and manufactured as opaque.
119 
124  const FieldContainer *treeInfos);
125 
126 };
127 
128 ML_END_NAMESPACE
Project global and OS specific declarations.
#define MLDICOMTAGINTERFACES_EXPORT
DLL export macro definition.
FieldAddOn class supporting inheritance and optional writing of a boolean tag value.
Manages a module field interface to edit a single CID value from a given table.
Provides control to copy/inherit a set of tag (values) from an input DCMTree, buffer it,...
Manages the module field interface according to DICOM Manufacturing 3D Model Module C....
DicomCIDSingleEntryEditTagInterface measurementUnitsCodeSequenceCIDEditor
Mandatory handler for the Manufactoring 3D model, used for the Measurement Units Code Sequence.
DicomBoolInheritAndWriteTagInterface modelMirroring
Model Mirroring (0068,7002) Specifies whether mirroring of anatomy from the other side of the patient...
StringField * _contentDescriptionFld
Content Description (0070,0081) A description of the model, Vr LO, maximum 64 bytes.
DicomBoolInheritAndWriteTagInterface modelModification
Model Modification (0068,7001) Specifies whether a modification of the observed anatomy (other than m...
std::string _addManufacturing3DModelModuleTags(DCMTree::TreePtr dcmTree, const FieldContainer *treeInfos)
Sets the tags for Manufacturing3DModelModule and related tags and returns an empty string on success,...
DicomCopyTagSetInterface otherManufacturing3DModelModuleTags
All tags not available in the interface which are from Acquisition Context Module.
std::string applyModifications(DCMTree::TreePtr dcmTree, const FieldContainer *treeInfos=nullptr) override
See DicomModifyFieldAddOnBase::applyModifications() for documentation; adds field values as tags to d...
void handleFieldActivationChanges() override
Handle class changes according to Module::activateAttachments.
FieldAddOnBase::FieldChangeState handleFieldChanges(Field *field) override
Handle field notifications according to Module::activateAttachments with a return of field change sta...
std::string checkConsistency() const override
Checks for invalid parameters; return textual description on error, or empty string on success; requi...
void addFields() override
Add fields to field container of module.
DicomManufacturing3DModelModuleTagInterface(Module &modRef)
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.
The class DicomModifyFieldAddOnBase is dedicated to manage fields for ML modules and instances derive...
FieldChangeState
Describes the type of a field changes detected in handleFieldChanges(Field *field).
Defines the class FieldContainer to encapsulate a vector of fields for (see class Field).
Base class for all fields used in the ML.
Definition: mlField.h:73
Base class for an image processing module of the ML.
Definition: mlModule.h:156
Field to encapsulate a string value.
Definition: mlFields.h:1000
Header file for the FieldAddOn supporting inheritance and auto creating tag values (for example DICOM...
Header file for the ML module base class DicomCIDSingleEntryEditTagInterface Manages to edit a single...
Header file for the ML module base class DicomCopyTagSetInterface which provides control to copy/inhe...
Header file of the DicomModifyFieldAddOnBase class dedicated to manage fields for ML modules and inst...
boost::shared_ptr< const Tree > Const_TreePtr
Definition: DCMTree_Lib.h:73
boost::shared_ptr< Tree > TreePtr
shared pointer to a DCMTree::Tree
Definition: DCMTree_Lib.h:70