plastimatch
Loading...
Searching...
No Matches
rt_study_metadata.h
Go to the documentation of this file.
1/* -----------------------------------------------------------------------
2 See COPYRIGHT.TXT and LICENSE.TXT for copyright and license information
3 ----------------------------------------------------------------------- */
4#ifndef _rt_study_metadata_h_
5#define _rt_study_metadata_h_
6
7#include "plmbase_config.h"
8#include <list>
9
10#include "itk_image_type.h"
11#include "plm_image.h"
12#include "plm_int.h"
13#include "smart_pointer.h"
14
15class Rt_study_metadata_private;
16class Metadata;
18class Slice_list;
19class Volume;
20
28public:
30public:
31 Rt_study_metadata_private *d_ptr;
32public:
35public:
36 static Rt_study_metadata::Pointer load (const std::string& dicom_path);
37 static Rt_study_metadata::Pointer load (const char* dicom_path);
38public:
39 const char* get_ct_series_uid () const;
40 void set_ct_series_uid (const char* uid);
41 void force_ct_series_uid (const std::string& uid);
42 const char* get_ct_series_description () const;
43 const std::string& get_dose_instance_uid () const;
44 const char* get_dose_series_uid () const;
45
46 const std::string& get_frame_of_reference_uid () const;
47 void set_frame_of_reference_uid (const char* uid);
48 void set_frame_of_reference_uid (const std::string& uid);
49
50 const char* get_plan_instance_uid () const;
51 const std::string& get_rtstruct_instance_uid () const;
52 void set_rtstruct_instance_uid (const char* rtstruct_instance_uid);
53 const char* get_rtstruct_series_uid () const;
54
55 const char* get_position_reference_indicator () const;
56 void set_position_reference_indicator (const char* position_reference_indicator);
57 void set_position_reference_indicator (const std::string& position_reference_indicator);
58
59 const char* get_referring_physician_name () const;
60 void set_referring_physician_name (const char* referring_physician_name);
61 void set_referring_physician_name (const std::string& referring_physician_name);
62
63 const char* get_accession_number () const;
64 void set_accession_number (const char* accession_number);
65 void set_accession_number (const std::string& accession_number);
66
67 const char* get_study_date () const;
68 void set_study_date (const char* date);
69 void set_study_date (const std::string& date);
70
71 const char* get_study_description () const;
72 void set_study_description (const char* description);
73 void set_study_description (const std::string& description);
74
75 const char* get_study_time () const;
76 void set_study_time (const char* time);
77 void set_study_time (const std::string& time);
78
79 const std::string& get_study_uid () const;
80 void set_study_uid (const char* uid);
81 void set_study_uid (const std::string& uid);
82
83 const char* get_study_id () const;
84 void set_study_id (const char* id);
85 void set_study_id (const std::string& id);
86
87 const std::string& get_patient_name ();
88 void set_patient_name (const char* name);
89 void set_patient_name (const std::string& name);
90
91 const std::string& get_patient_id ();
92 void set_patient_id (const std::string& id);
93
94 const std::string& get_patient_birth_date ();
95 void set_patient_birth_date (const char* birth_date);
96 void set_patient_birth_date (const std::string& birth_date);
97
98 const std::string& get_patient_sex ();
99 void set_patient_sex (const char* sex);
100 void set_patient_sex (const std::string& sex);
101
102 const Plm_image_header* get_image_header () const;
103 void set_image_header (const Plm_image::Pointer& pli);
104 void set_image_header (const Plm_image_header& pih);
105 void set_image_header (ShortImageType::Pointer img);
106
107 const Slice_list *get_slice_list () const;
108 void reset_slice_uids ();
109 const char* get_slice_uid (int index) const;
110 void set_slice_uid (int index, const char* slice_uid);
111 bool slice_list_complete () const;
112 void set_slice_list_complete ();
113 int num_slices () const;
114
115 Metadata::Pointer& get_study_metadata ();
116 const Metadata::Pointer& get_study_metadata () const;
117 const std::string& get_study_metadata (unsigned short key1,
118 unsigned short key2) const;
119 void set_study_metadata (unsigned short key1, unsigned short key2,
120 const std::string& val);
121
122 Metadata::Pointer& get_image_metadata ();
123 const Metadata::Pointer& get_image_metadata () const;
124 const std::string& get_image_metadata (unsigned short key1,
125 unsigned short key2) const;
126 void set_image_metadata (unsigned short key1, unsigned short key2,
127 const std::string& val);
128
129 Metadata::Pointer& get_rtstruct_metadata ();
130 const Metadata::Pointer& get_rtstruct_metadata () const;
131 void set_rtstruct_metadata (unsigned short key1, unsigned short key2,
132 const std::string& val);
133 Metadata::Pointer& get_dose_metadata ();
134 const Metadata::Pointer& get_dose_metadata () const;
135 void set_dose_metadata (unsigned short key1, unsigned short key2,
136 const std::string& val);
137 Metadata::Pointer& get_rtplan_metadata ();
138 const Metadata::Pointer& get_rtplan_metadata () const;
139 void set_rtplan_metadata (unsigned short key1, unsigned short key2,
140 const std::string& val);
141 Metadata::Pointer& get_sro_metadata ();
142 const Metadata::Pointer& get_sro_metadata () const;
143 void set_sro_metadata (unsigned short key1, unsigned short key2,
144 const std::string& val);
145#if PLM_DCM_USE_DCMTK
146 const std::string& get_study_metadata (const DcmTagKey& key) const;
147 void set_study_metadata (const DcmTagKey& key, const std::string& val);
148 const std::string& get_image_metadata (const DcmTagKey& key) const;
149 void set_image_metadata (const DcmTagKey& key, const std::string& val);
150 const std::string& get_sro_metadata (const DcmTagKey& key) const;
151 void set_sro_metadata (const DcmTagKey& key, const std::string& val);
152#endif
153 void generate_new_dose_instance_uid ();
154 void generate_new_plan_instance_uid ();
155 void generate_new_rtstruct_instance_uid ();
156 void generate_new_series_uids ();
157 void generate_new_study_uids ();
158 void print () const;
159};
160
161#endif
The Metadata class encapsulate DICOM metadata for a single series. It is implemented as a map from st...
Definition metadata.h:24
The Plm_image_header class defines the geometry of an image. It defines image origin,...
Definition plm_image_header.h:24
std::shared_ptr< Self > Pointer
Definition plm_image.h:29
The Rt_study_metadata encapsulate DICOM metadata for an Rt_study. The Rt_study_metadata includes sepa...
Definition rt_study_metadata.h:27
Rt_study_metadata_private * d_ptr
Definition rt_study_metadata.h:31
std::shared_ptr< Self > Pointer
Definition rt_study_metadata.h:29
Definition slice_list.h:12
The Volume class represents a three-dimensional volume on a uniform grid. The volume can be located a...
Definition volume.h:38
void get_image_header(plm_long dim[3], float offset[3], float spacing[3], T image)
Definition itk_image.cxx:58
#define PLMBASE_API
Definition plmbase_config.h:19
#define SMART_POINTER_SUPPORT(T)
Definition smart_pointer.h:19