@@ -4269,31 +4269,46 @@ def __init__(
42694269 PlanarROIMeasurementsAndQualitativeEvaluations |
42704270 VolumetricROIMeasurementsAndQualitativeEvaluations
42714271 )
4272- if imaging_measurements is not None :
4273- measurement_types = (
4274- PlanarROIMeasurementsAndQualitativeEvaluations ,
4275- VolumetricROIMeasurementsAndQualitativeEvaluations ,
4276- MeasurementsAndQualitativeEvaluations ,
4272+
4273+ # Since only imaging meansurements are currently supported, at least
4274+ # one is required. This could be relaxed in the future if evaluations
4275+ # or derived measurements (rows 10 or 12 of the TID1500 table) are
4276+ # supported
4277+ if imaging_measurements is None :
4278+ raise TypeError (
4279+ "Argument 'imaging_measurements' is required."
42774280 )
4278- container_item = ContainerContentItem (
4279- name = codes .DCM .ImagingMeasurements ,
4280- relationship_type = RelationshipTypeValues .CONTAINS
4281+
4282+ if len (imaging_measurements ) == 0 :
4283+ raise ValueError (
4284+ "Argument 'imaging_measurements' must contain at least "
4285+ "one item."
42814286 )
4282- container_item .ContentSequence = ContentSequence ()
4283- for measurements in imaging_measurements :
4284- if not isinstance (measurements , measurement_types ):
4285- raise TypeError (
4286- 'Measurements must have one of the following types: '
4287- '"{}"' .format (
4288- '", "' .join (
4289- [
4290- t .__name__
4291- for t in measurement_types
4292- ]
4293- )
4287+
4288+ measurement_types = (
4289+ PlanarROIMeasurementsAndQualitativeEvaluations ,
4290+ VolumetricROIMeasurementsAndQualitativeEvaluations ,
4291+ MeasurementsAndQualitativeEvaluations ,
4292+ )
4293+ container_item = ContainerContentItem (
4294+ name = codes .DCM .ImagingMeasurements ,
4295+ relationship_type = RelationshipTypeValues .CONTAINS
4296+ )
4297+ container_item .ContentSequence = ContentSequence ()
4298+ for measurements in imaging_measurements :
4299+ if not isinstance (measurements , measurement_types ):
4300+ raise TypeError (
4301+ 'Measurements must have one of the following types: '
4302+ '"{}"' .format (
4303+ '", "' .join (
4304+ [
4305+ t .__name__
4306+ for t in measurement_types
4307+ ]
42944308 )
42954309 )
4296- container_item .ContentSequence .extend (measurements )
4310+ )
4311+ container_item .ContentSequence .extend (measurements )
42974312 item .ContentSequence .append (container_item )
42984313 super ().__init__ ([item ], is_root = True )
42994314
0 commit comments