7 #include "fwGdcmIO/writer/tid/MeasurementReport.hpp" 9 #include "fwGdcmIO/container/DicomCodedAttribute.hpp" 10 #include "fwGdcmIO/container/sr/DicomSRCodeNode.hpp" 11 #include "fwGdcmIO/container/sr/DicomSRContainerNode.hpp" 12 #include "fwGdcmIO/container/sr/DicomSRImageNode.hpp" 13 #include "fwGdcmIO/container/sr/DicomSRNumNode.hpp" 14 #include "fwGdcmIO/container/sr/DicomSRSCoord3DNode.hpp" 15 #include "fwGdcmIO/container/sr/DicomSRSCoordNode.hpp" 16 #include "fwGdcmIO/container/sr/DicomSRTextNode.hpp" 17 #include "fwGdcmIO/container/sr/DicomSRUIDRefNode.hpp" 18 #include "fwGdcmIO/writer/tid/Fiducial.hpp" 19 #include "fwGdcmIO/writer/tid/Measurement.hpp" 21 #include <fwData/PointList.hpp> 22 #include <fwData/String.hpp> 23 #include <fwData/Vector.hpp> 25 #include <fwDataTools/fieldHelper/Image.hpp> 27 #include <fwMedData/Series.hpp> 28 #include <fwMedData/types.hpp> 30 #include <boost/algorithm/string/split.hpp> 32 #include <gdcmUIDGenerator.h> 47 const ::fwData::Image::csptr& image) :
64 std::make_shared< ::fwGdcmIO::container::sr::DicomSRContainerNode >(
69 std::make_shared< ::fwGdcmIO::container::sr::DicomSRCodeNode >(
75 rootNode->addSubNode(languagesNode);
81 std::make_shared< ::fwGdcmIO::container::sr::DicomSRCodeNode >(
88 rootNode->addSubNode(procedureReportedNode);
92 std::make_shared< ::fwGdcmIO::container::sr::DicomSRContainerNode >(
94 rootNode->addSubNode(imageLibraryNode);
101 std::make_shared< ::fwGdcmIO::container::sr::DicomSRContainerNode >(
103 rootNode->addSubNode(fiducialNode);
106 fiducialTID.
createNodes(fiducialNode, useSCoord3D);
114 std::make_shared< ::fwGdcmIO::container::sr::DicomSRContainerNode >(
116 rootNode->addSubNode(imagingMeasurementsNode);
120 std::make_shared< ::fwGdcmIO::container::sr::DicomSRContainerNode >(
122 imagingMeasurementsNode->addSubNode(measurementGroupNode);
126 std::make_shared< ::fwGdcmIO::container::sr::DicomSRTextNode >(
128 "HAS OBS CONTEXT",
"1");
129 imagingMeasurementsNode->addSubNode(idNode);
132 ::gdcm::UIDGenerator generator;
134 std::make_shared< ::fwGdcmIO::container::sr::DicomSRUIDRefNode >(
136 "HAS OBS CONTEXT", generator.Generate());
137 imagingMeasurementsNode->addSubNode(uidNode);
140 measurementTID.
createNodes(imagingMeasurementsNode, useSCoord3D);
This class defines a UIDREF node in a SR document.
std::shared_ptr< const ::fwData::Image > m_object
FW4SPL Object.
virtual FWGDCMIO_API void createNodes(const std::shared_ptr< ::fwGdcmIO::container::sr::DicomSRNode > &parent, bool useSCoord3D=true)
Create nodes according to the template.
std::shared_ptr< ::gdcm::Writer > m_writer
GDCM Writer.
This class defines a TEXT node in a SR document.
virtual FWGDCMIO_API std::shared_ptr< ::fwGdcmIO::container::sr::DicomSRNode > createRootNode(bool useSCoord3D=true)
Create Measurement Report template root node.
This class defines a DICOM SOP instance. It is useful during the whole writing process. This class allows to share data between module writers.
virtual FWGDCMIO_API void createNodes(const std::shared_ptr< ::fwGdcmIO::container::sr::DicomSRNode > &parent, bool useSCoord3D=true)
Create nodes according to the template.
TemplateID base class used to write templates.
The namespace fwGdcmIO contains reader, writer and helper for dicom data.
FWGDCMIO_API MeasurementReport(const std::shared_ptr< ::gdcm::Writer > &writer, const std::shared_ptr< ::fwGdcmIO::container::DicomInstance > &instance, const ::fwData::Image::csptr &image)
Constructor.
This class defines a node in a SR document.
This class defines a vector of objects.
This class represents a DICOM basic coded entry. It stores the four mains attributes : Code Value...
std::shared_ptr< ::fwGdcmIO::container::DicomInstance > m_instance
DICOM Instance.
This class defines a CONTAINER node in a SR document.
This class defines a CODE node in a SR document.
This class defines a list of points.
Contains the representation of the data objects used in the framework.
virtual FWGDCMIO_API ~MeasurementReport()
Destructor.
Measurement Report TID - This a root template.