9
9
# See the License for the specific language governing permissions and
10
10
# limitations under the License.
11
11
12
- from typing import Any
13
-
14
12
from .dicom_sop_instance import DICOMSOPInstance
15
13
from .domain import Domain
16
14
@@ -23,22 +21,24 @@ def __init__(self, series_instance_uid):
23
21
self ._series_instance_uid = series_instance_uid
24
22
self ._sop_instances = []
25
23
26
- self ._series_date : Any = None
27
- self ._series_time : Any = None
28
- self ._modality : Any = None
29
- self ._series_description : Any = None
30
- self ._body_part_examined : Any = None
31
- self ._patient_position : Any = None
32
- self ._series_number : Any = None
33
- self ._laterality : Any = None
34
- self ._row_pixel_spacing : Any = None
35
- self ._col_pixel_spacing : Any = None
36
- self ._depth_pixel_spacing : Any = None
37
- self ._row_direction_cosine : Any = None
38
- self ._col_direction_cosine : Any = None
39
- self ._depth_direction_cosine : Any = None
40
- self ._dicom_affine_transform : Any = None
41
- self ._nifti_affine_transform : Any = None
24
+ # Do not set attributes in advance to save memory
25
+
26
+ # self._series_date: Any = None
27
+ # self._series_time: Any = None
28
+ # self._modality: Any = None
29
+ # self._series_description: Any = None
30
+ # self._body_part_examined: Any = None
31
+ # self._patient_position: Any = None
32
+ # self._series_number: Any = None
33
+ # self._laterality: Any = None
34
+ # self._row_pixel_spacing: Any = None
35
+ # self._col_pixel_spacing: Any = None
36
+ # self._depth_pixel_spacing: Any = None
37
+ # self._row_direction_cosine: Any = None
38
+ # self._col_direction_cosine: Any = None
39
+ # self._depth_direction_cosine: Any = None
40
+ # self._dicom_affine_transform: Any = None
41
+ # self._nifti_affine_transform: Any = None
42
42
43
43
def get_series_instance_uid (self ):
44
44
return self ._series_instance_uid
@@ -52,127 +52,127 @@ def get_sop_instances(self):
52
52
53
53
@property
54
54
def series_date (self ):
55
- return self . _series_date
55
+ return getattr ( self , " _series_date" , None )
56
56
57
57
@series_date .setter
58
58
def series_date (self , val ):
59
59
self ._series_date = val
60
60
61
61
@property
62
62
def series_time (self ):
63
- return self . _series_time
63
+ return getattr ( self , " _series_time" , None )
64
64
65
65
@series_time .setter
66
66
def series_time (self , val ):
67
67
self ._series_time = val
68
68
69
69
@property
70
70
def modality (self ):
71
- return self . _modality
71
+ return getattr ( self , " _modality" , None )
72
72
73
73
@modality .setter
74
74
def modality (self , val ):
75
75
self ._modality = val
76
76
77
77
@property
78
78
def series_description (self ):
79
- return self . _series_description
79
+ return getattr ( self , " _series_description" , None )
80
80
81
81
@series_description .setter
82
82
def series_description (self , val ):
83
83
self ._series_description = val
84
84
85
85
@property
86
86
def body_part_examined (self ):
87
- return self . _body_part_examined
87
+ return getattr ( self , " _body_part_examined" , None )
88
88
89
89
@body_part_examined .setter
90
90
def body_part_examined (self , val ):
91
91
self ._body_part_examined = val
92
92
93
93
@property
94
94
def patient_position (self ):
95
- return self . _patient_position
95
+ return getattr ( self , " _patient_position" , None )
96
96
97
97
@patient_position .setter
98
98
def patient_position (self , val ):
99
99
self ._patient_position = val
100
100
101
101
@property
102
102
def series_number (self ):
103
- return self . _series_number
103
+ return getattr ( self , " _series_number" , None )
104
104
105
105
@series_number .setter
106
106
def series_number (self , val ):
107
107
self ._series_number = val
108
108
109
109
@property
110
110
def laterality (self ):
111
- return self . _laterality
111
+ return getattr ( self , " _laterality" , None )
112
112
113
113
@laterality .setter
114
114
def laterality (self , val ):
115
115
self ._laterality = val
116
116
117
117
@property
118
118
def row_pixel_spacing (self ):
119
- return self . _row_pixel_spacing
119
+ return getattr ( self , " _row_pixel_spacing" , None )
120
120
121
121
@row_pixel_spacing .setter
122
122
def row_pixel_spacing (self , val ):
123
123
self ._row_pixel_spacing = val
124
124
125
125
@property
126
126
def col_pixel_spacing (self ):
127
- return self . _col_pixel_spacing
127
+ return getattr ( self , " _col_pixel_spacing" , None )
128
128
129
129
@col_pixel_spacing .setter
130
130
def col_pixel_spacing (self , val ):
131
131
self ._col_pixel_spacing = val
132
132
133
133
@property
134
134
def depth_pixel_spacing (self ):
135
- return self . _depth_pixel_spacing
135
+ return getattr ( self , " _depth_pixel_spacing" , None )
136
136
137
137
@depth_pixel_spacing .setter
138
138
def depth_pixel_spacing (self , val ):
139
139
self ._depth_pixel_spacing = val
140
140
141
141
@property
142
142
def row_direction_cosine (self ):
143
- return self . _row_direction_cosine
143
+ return getattr ( self , " _row_direction_cosine" , None )
144
144
145
145
@row_direction_cosine .setter
146
146
def row_direction_cosine (self , val ):
147
147
self ._row_direction_cosine = val
148
148
149
149
@property
150
150
def col_direction_cosine (self ):
151
- return self . _col_direction_cosine
151
+ return getattr ( self , " _col_direction_cosine" , None )
152
152
153
153
@col_direction_cosine .setter
154
154
def col_direction_cosine (self , val ):
155
155
self ._col_direction_cosine = val
156
156
157
157
@property
158
158
def depth_direction_cosine (self ):
159
- return self . _depth_direction_cosine
159
+ return getattr ( self , " _depth_direction_cosine" , None )
160
160
161
161
@depth_direction_cosine .setter
162
162
def depth_direction_cosine (self , val ):
163
163
self ._depth_direction_cosine = val
164
164
165
165
@property
166
166
def dicom_affine_transform (self ):
167
- return self . _dicom_affine_transform
167
+ return getattr ( self , " _dicom_affine_transform" , None )
168
168
169
169
@dicom_affine_transform .setter
170
170
def dicom_affine_transform (self , val ):
171
171
self ._dicom_affine_transform = val
172
172
173
173
@property
174
174
def nifti_affine_transform (self ):
175
- return self . _nifti_affine_transform
175
+ return getattr ( self , " _nifti_affine_transform" , None )
176
176
177
177
@nifti_affine_transform .setter
178
178
def nifti_affine_transform (self , val ):
@@ -184,83 +184,56 @@ def __str__(self):
184
184
series_instance_uid_attr = "Series Instance UID: " + self ._series_instance_uid + "\n "
185
185
result += series_instance_uid_attr
186
186
187
- try :
188
- num_sop_instances = "Num SOP Instances: " + str (len (self ._sop_instances )) + "\n "
189
- result += num_sop_instances
190
- except AttributeError :
191
- pass
187
+ num_sop_instances = "Num SOP Instances: " + str (len (self ._sop_instances )) + "\n "
188
+ result += num_sop_instances
192
189
193
- try :
190
+ if self . series_date is not None :
194
191
series_date_attr = "Series Date: " + self .series_date + "\n "
195
192
result += series_date_attr
196
- except AttributeError :
197
- pass
198
193
199
- try :
194
+ if self . series_time is not None :
200
195
series_time_attr = "Series Time: " + self .series_time + "\n "
201
196
result += series_time_attr
202
- except AttributeError :
203
- pass
204
197
205
- try :
198
+ if self . modality is not None :
206
199
modality_attr = "Modality: " + self .modality + "\n "
207
200
result += modality_attr
208
- except AttributeError :
209
- pass
210
201
211
- try :
202
+ if self . series_description is not None :
212
203
series_desc_attr = "Series Description: " + self .series_description + "\n "
213
204
result += series_desc_attr
214
- except AttributeError :
215
- pass
216
205
217
- try :
206
+ if self . row_pixel_spacing is not None :
218
207
row_pixel_spacing_attr = "Row Pixel Spacing: " + str (self .row_pixel_spacing ) + "\n "
219
208
result += row_pixel_spacing_attr
220
- except AttributeError :
221
- pass
222
209
223
- try :
210
+ if self . col_pixel_spacing is not None :
224
211
col_pixel_spacing_attr = "Column Pixel Spacing: " + str (self .col_pixel_spacing ) + "\n "
225
212
result += col_pixel_spacing_attr
226
- except AttributeError :
227
- pass
228
213
229
- try :
214
+ if self . depth_pixel_spacing is not None :
230
215
depth_pixel_spacing_attr = "Depth Pixel Spacing: " + str (self .depth_pixel_spacing ) + "\n "
231
216
result += depth_pixel_spacing_attr
232
- except AttributeError :
233
- pass
234
217
235
- try :
218
+ if self . row_direction_cosine is not None :
236
219
row_direction_cosine_attr = "Row Direction Cosine: " + str (self .row_direction_cosine ) + "\n "
237
220
result += row_direction_cosine_attr
238
- except AttributeError :
239
- pass
240
221
241
- try :
222
+ if self . col_direction_cosine is not None :
242
223
col_direction_cosine_attr = "Column Direction Cosine: " + str (self .col_direction_cosine ) + "\n "
243
224
result += col_direction_cosine_attr
244
- except AttributeError :
245
- pass
246
225
247
- try :
226
+ if self . depth_direction_cosine is not None :
248
227
depth_direction_cosine_attr = "Depth Direction Cosine: " + str (self .depth_direction_cosine ) + "\n "
249
228
result += depth_direction_cosine_attr
250
- except AttributeError :
251
- pass
252
229
253
- try :
230
+ if self . dicom_affine_transform is not None :
254
231
dicom_affine_transform_attr = "DICOM affine transform: " + "\n " + str (self .dicom_affine_transform ) + "\n "
255
232
result += dicom_affine_transform_attr
256
- except AttributeError :
257
- pass
258
233
259
- try :
234
+ if self . nifti_affine_transform is not None :
260
235
nifti_affine_transform_attr = "NIFTI affine transform: " + "\n " + str (self .nifti_affine_transform ) + "\n "
261
236
result += nifti_affine_transform_attr
262
- except AttributeError :
263
- pass
264
237
265
238
result += "---------------" + "\n "
266
239
0 commit comments